Shortcuts

ToDo’s

Next framework implmentation steps:

  • parallel computation
  • distributed computation
  • output manager to identify and connect outputs automatically (always only optional), e.g.:
    • outputs: Engine, Metric, OutputHandler
    • inputs: Metrics, OutputHandler, Chart, FileLogger
    • standard naming & typing, e.g. y, y_pred (?!), ‘loss’,
  • resource & performance optimization tools, e.g. freeing memory, state object type-checking-turn-off after first training iteration
  • debugger mode features that can be turned on/off with state.configs.default_configs.debug_mode = True/False

Here’s a list of possible feature to implement, some of which may only be realizable due to the new framework architecture:

  • maintenance features:
    • time sequential data processing analysis
    • resource loggers: CpuPsutilLogger, GpuPynvmlLogger, memory logger, all thread based not callback triggered
    • state object (general objects) finder tools
    • object finder tool
  • pipelines:
    • hyperparameter tuning
  • visualization:
    • state structure vis tool
    • data flow vis tool
    • time sequential data processing vis tool
    • overlay visuslisation of data flow & data process time sequence (evtl. 3D)
    • full state visualization with current values (in Tensorboard)

Some notes… just notes:

  • parallel/distributed computing:
    • automatic distribution of engines/paths to (multi-)threads or (multi-)processes & distributed machines
    • state runs on main process whereas engines or paths managed by e.g. a process pool
    • engine/paths-cloning for each distributed machine which are all visualized in main-process-state
    • distributed engines/states update main-state which can be visualized “realtime” in TensorBoard
  • output manager: standardized classification of outputs, i.e. from engines, metrics, output handlers etc., so successive bso-containers know how to handle the input references automatically, e.g. a engine outputs data labels and loss and the successive accuracy metric obviously chooses the labels when the user passes in the “full output reference”. It’s a simple task to automate but always really annoying for the user. Same with output handlers and charts… “auto-charts/loggers” should select the correct chart/log-class for given outputs, e.g. logging scalar, histogram etc.