-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve clarity of logfile contents #216
Comments
For regression models I think emitting max, min, mean, and std would be helpful. |
Label distribution is now logged for the final test set (both truth and predicted). However, it would be helpful to also log label distribution for train, val, and test splits. This info is collected in aggregate stats but spread out in the log file. Would be good if all in one place at the end. |
blocked by #323 |
this is somewhat difficult, as I understand, the number of tensors in each epoch can vary (purposefully using balance_csv) and so we'd need some way of getting all the unique tensors used across all epochs |
The goal is to understand precisely how much data was given to the model (in train, validation, and test splits, per epoch). Let me take a step back and ensure I understand some of the plumbing. The number of tensors per "keras epoch" (== faux epoch) is set by I find the following information helpful (figures taken from our STS-ECG work):
How is this useful? If If Note the counts (e.g. number of samples) are not the number of samples the model sees. Rather, the counts are the number of HD5 files the model attempts to get data from via TMaps. In fact, even for our STS-ECG work where we specify every MRN in each split, we cannot easily tell from the log file if arrays were successfully obtained from 100% of those HD5 files and passed to the model for training, validation, and testing. If a user does not set Instead, the number of samples in each split, per epoch, is determined by Each split is randomly sampled (although not yet stratified by label, which would be better; see #313) from training, validation, and test sets that are determined by:
This is further complicated by the fact that a TMap may not return a valid array. Let's say we have 1000 HD5 files at I posit it is useful to know how many tensors were given to the model (e.g. had valid array returned by TMap), rather than merely how many HD5 files we tried to get tensors from via TMaps. |
agreed, I think I just meant that it will take more work/plumbing to achieve this output |
Spoke w/ @paolodi:
|
What
Display training, validation, and test set size at the end of the log file for
train
mode (and potentially other modes).Clearly portray how many epochs are actually completed (due to
patience
).Why
It is helpful to know the number of tensors used for training, validation, and test, as well as the label count within each set.
Label count makes sense for categorical. Less clear how we best handle this for regression models.
It is also important to know when early stopping occurred.
Currently this information is not consolidated in one place in the log file. It also is spread out over workers.
How
Aggregate over workers.
Acceptance Criteria
After running recipes with
train
mode, the number of tensors used for training, validation, and test sets, as well label counts in each set, and the number of epochs actually run before early stopping, are summarized at the end of the log file.The text was updated successfully, but these errors were encountered: