Skip to content

WIP: Refactor

Adam Blazek requested to merge refactor into master

This MR contains a number of major architecture changes; hence, feedback from @petrbel or @floop would be appreciated.

Main features are:

  • EntryPoint object is removed. Instead, the training procedure is now an entry_point module function as well as its steps.
    • training procedure consists of 7 steps out of which 5 are defined as stand-alone functions which might be unit-tested (prefixed with _train_) and the remaining 2 are one-liners
  • output directory is not created for dataset splitting
  • utils.reflection module introduces simple generic functions for object instance creation
  • refactored code is documented
  • dataset is created with yaml string which contain
    • dataset config required
    • stream config required
    • output_dir optional
  • error/exception/logging directives are following
    • generic util functions do not log and may throw exceptions and errors
    • training steps function may log and may throw exceptions and errors
    • train and split functions may log and should handle exceptions and errors
    • dataset and net may log within their constructor (either through python logging when available or to a separate file under the output_dir)

WARNING To test the changes as a whole one must

  • re-install cxflow (as the init_entry_point function was renamed to entry_point)
  • checkout refactor_fix branch in cxMNIST project

cxtream streams are not supported at the moment.

  • Write down a detailed list of required tests to the respective issues (or create a new ones)
  • Resolve the remaining discussions

closes #35 (closed), #15 (closed) and #37 (closed)

Merge request reports