rlworkgroup / dowel

A little logger for machine learning research
MIT License
32 stars 37 forks source link

Add Python 3.8 build #49

Closed koverman47 closed 4 years ago

koverman47 commented 4 years ago

Inconsistent header keys are handled. When a new key is introduced, the previous data is augmented line by line. In the logger, if data is a TabularInput instance, then it has its values emptied, with its keys remaining so that there is no data bleed when a key is omitted in the future. Tensorboard incompatibility is an issue as tensorboard does not accept the empty character (or string) as a legal numpy scalar.

Nine tests have been provided to cover the various circumstances:

  1. No change in keys
  2. Single increase in keys with consistent future usage
  3. Multiple increase in keys with consistent future usage
  4. Single increase in keys with inconsistent future usage
  5. Multiple increase in keys with inconsistent future usage
  6. Overlapping increase in keys with immediate inconsistency
  7. Static keys - tensorboard incompatibility test
  8. Dynamic keys - tensorboard incompatibility test
  9. Empty tabulation test

Note: I have left the comment structure to be consistent with the preexisting code.