WIP: Refactor
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
- training procedure consists of 7 steps out of which 5 are defined as stand-alone functions which might be unit-tested (prefixed with
- 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
andsplit
functions may log and should handle exceptions and errors -
dataset
andnet
may log within their constructor (either through python logging when available or to a separate file under theoutput_dir
)
WARNING To test the changes as a whole one must
- re-install cxflow (as the
init_entry_point
function was renamed toentry_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)