-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCHANGELOG.txt
353 lines (257 loc) · 10.5 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
Change Log
==========
0.4.12 (28/03/2023)
-----------------
* ThresholdChecker is updated to compute improvement according to last improved step and not to the best received metric
0.4.11 (14/02/2023)
-----------------
* Dense custom layer to support apply norm (configurable to before or after activation)
* StatsPrint callback to support printing best confusion matrix when at least one of the metrics is of type ``MetricConfusionMatrixBase``
* Some minor cosmetic changes
0.4.10 (04/02/2023)
-----------------
* TransformerEncoderStack to support activation as input
* PositionalEncoding to support more than 3 dimensions input
0.4.9 (22/01/2023)
-----------------
* Added assert to Attention class (from extensions) when mask is used
* Fixed confusion matrix cpu/gpu device error
* Better handling on callbacks where apply_on_states=None (apply on all states)
* Updated Pipfile
0.4.8 (15/09/2022)
-----------------
* Added AbsoluteThresholdChecker & RelativeThresholdChecker classes
* ThresholdCheckers can now be used in CallbackMonitor to better define metric tracking
0.4.7 (27/06/2022)
-----------------
* Bug fix in case validation samples are empty
0.4.6 (21/06/2022)
-----------------
* Bug fix in case validation samples are empty
0.4.5 (24/04/2022)
-----------------
* Bug fix in verbosity level 2 in train
0.4.4 (17/03/2022)
-----------------
* Verbosity change in torch_utils
0.4.3 (03/11/2021)
-----------------
* Fix to PositionalEncoding to be batch first
0.4.1 (27/07/2021)
-----------------
* Minor change to MatMul2D, use torch.matmul instead of torch.bmm
0.4.0 (05/04/2021)
-----------------
* Fixed tqdm dependancy
* Fixed predict_sample when sample is an array of input
0.3.9 (29/01/2021)
-----------------
* Bug fix when saving full trainer that has tensorboard callback
* Added LossOptimizerHandlerAccumulateSamples
* Added LossOptimizerHandlerAccumulateBatches
* Added is_file_exists method to file_utils
0.3.8 (20/01/2021)
-----------------
* Added new callback - TensorboardImage
* Added example for TensorboardImage
* Added torchvision to requirements-dev.txt
* In Trainer - metric_name_to_func (dict) was changed to metrics (list)
* Trainer now holds _last_data property - a class InputOutputLabel that holds (inputs, outputs, labels)
* New method in file_utils ensure_folder_created
0.3.7 (27/11/2020)
-----------------
* Added lpd-nodeps package in case you need to handle your own dependencies
0.3.6 (14/11/2020)
-----------------
* Improved handling of MetricConfusionMatrixBase with custom metrics
0.3.5 (13/11/2020)
-----------------
* CallbackMonitor patience argument now optional for cleaner code
* Better handling for binary get_stats in confusion matrix based metric
0.3.4 (11/11/2020)
-----------------
* Added MetricConfusionMatrixBase for adding custom confusion matrix based metrics
* Added ConfusionMatrixBasedMetric Enum to get specific metrics such as tp,fp,fn,tn,precision,sensitivity,specificity,recall,ppv,npv,accuracy,f1score
* Added confusion matrix common metrics (TruePositives, TrueNegatives, FalsePositives, FalseNegatives)
* Added MetricMethod enum to pass to MetricBase, now you can define whether your metric is based on MEAN, SUM or LAST of all batches
* StatsPrint callback now support "print_confusion_matrix" and "print_confusion_matrix_normalized" arguments in case MetricConfusionMatrixBase metric is found
* Added confusion matrix tests and example
* Some custom layers renames (breaking changes in this part)
0.3.3 (01/11/2020)
-----------------
* Added StatsResult class
* Trainer.evaluate(...) now returns StatsResult instance with loss and metrics details
0.3.2 (29/10/2020)
-----------------
* Fixed CollectOutputs callbacks on GPU
* Pipfile explicit versioning
0.3.1 (29/10/2020)
-----------------
* Fixed loading Trainer & Predictor on CPU from GPU checkpoint
* Fixed saving/loading if scheduler is None
0.3.0 (29/10/2020)
-----------------
* Added metric TopKCategoricalAccuracy
* Added Predictor.from_trainer() method to Predictor class
* Fixed loading predictor from_checkpoint if the checkpoint is not Full Trainer
* Added unittest for TopKCategoricalAccuracy
0.2.90 (28/10/2020)
-----------------
* Added verbosity support in Trainer.train(verbose=1) and Trainer.evaluate(verbose=1)
* StatsPrint validation bug fix
* Added unittest for StatsPrint validation
0.2.81 (27/10/2020)
-----------------
* Minor release
* Metrics optimizations
0.2.8 (26/10/2020)
-----------------
* Added Predictor class !! predicting was never easier, see README for more details
* Added example for train/save/load/predict using the new Predictor
* Added unittests for predictor
0.2.7 (25/10/2020)
-----------------
* Added trainer validation for metric_name_to_func
* ModelCheckpoint args changed to accept CallbackMonitor
* EarlyStopping args changed to accept CallbackMonitor
* Adjusted examples and tests
* Added more unittests
0.2.6 (24/10/2020)
-----------------
* Added test for trainer save and load
* Moved LossOptimizerHandlerBase validation to Trainer.train() instead if Trainer.__init__
* Added name property to CallbackMonitorResult
* StatsPrint now accept list of monitors arguments for metrics
* StatsPrint will make validations on provided monitors
* Removed num_epochs from Trainer arguments, now its in Trainer.train(num_epochs)
* Adjusted all examples
0.2.5 (22/10/2020)
-----------------
* Added predict_sample and predict_data_loader methods to Trainer
* Added LossOptimizerHandler and LossOptimizerHandlerBase to callbacks
* Trainer must have at least one callback of type LossOptimizerHandlerBase
* Removed optimizer_step_and_zero_grad_criteria argument from Trainer, use LossOptimizerHandler callback instead
* CallbackContext now have optimizer, scheduler and train_last_loss properties for easier access
* CollectOutput arguments now must be passed explicitly
* CallbackBase will raise exception if __call__ not implemented
* Trainer have callbacks validation upon initialization, more validations will be added
* SchedulerStep scheduler_parameters_func should accept CallbackContext instead of Trainer
* Added copy_model_weights to torch_utils, (as requested, thank you for using lpd :))
* Adjusted all examples
0.2.4 (21/10/2020)
-----------------
* Added predict_batch
* Adjusted predict example
* Added threshold argument to BinaryAccuracy and BinaryAccuracyWithLogits
0.2.3 (19/10/2020)
-----------------
* Custom metrics are now in a separate module
* Custom metrics now classes instead of functions
* Added unittests for metrics
0.2.2 (18/10/2020)
-----------------
* Added predict method to trainer
* Added State.PREDICT enum
* Added Phase.PREDICT_BEGIN and Phase.PREDICT_END enums
* Added CollectOutputs callback
* Added predict example
* Moving some elements from nn.functional to nn
* Added sample count to save/load model
0.2.1 (15/10/2020)
-----------------
* Fix in Tensorboard metrics output
0.2.0 (14/10/2020)
-----------------
* Added Phase and States validations to Callbacks
* Added callbacks summary to trainer's summary
* Added to trainer optimizer_step_and_zero_grad_criteria
* Added sample_count and sample_count_in_epoch to Trainer and CallbackContext
* StatsPrint will now print sample count
* Added accumulate grads example
* Changed cuda.manual_seed to cuda.manual_seed_all
0.1.9 (13/10/2020)
-----------------
* bug fix in StatsPrint - print round numbers
0.1.8 (12/10/2020)
-----------------
* Added KerasDecay scheduler
* Added KerasDecay usage example
* Better printing in StatsPrint callback when using multiple metrics
0.1.7 (11/10/2020)
-----------------
* Fixed bug in TrainerStats for dynamic batch size
* Added support for metric name as string in StatsPrint callback
* Fixed some descriptions
* Updated README
0.1.6 (10/10/2020)
-----------------
* Trainer - added save_trainer and load_trainer methods
* ModelCheckPoint - added the option to save the full trainer as checkpoint
* Minor bug fix in callback_monitor
* StatsPrint changing dict.keys() to set() to enable saving trainer
* Binary accuracy removed restrictions of ndim==1
* Added more seeds to seed_all and to seed_torch
0.1.5 (09/10/2020)
-----------------
* Added verbosity to SchedulerStep
* StatsPrint callback will now print learning rates for all param groups
* Added get_lrs_from_optimizer to torch_utils
* Project PyPI setup fixes
0.1.4 (08/10/2020)
-----------------
This release contains breaking changes:
* Renamed cb_phase to apply_on_phase
* Renamed CallbackPhase to Phase, TrainerState to State
* Renamed Trainer.stop_training() to Trainer.stop(), so it also apply to testing
* Trainer now keeps track of iteration count and iteration_in_epoch count
* CallbackContext was expanded with iteration count and iteration_in_epoch count
* Calling Trainer.stop() from a callback will now stop even on a batch level (and not only epoch level)
0.1.3 (07/10/2020)
-----------------
* Bug fix in apply_on_states invocation of callbacks
0.1.2 (07/10/2020)
-----------------
* Readme fix
0.1.1 (07/10/2020)
-----------------
* Added TEST_BEGIN and TEST_END callbacks phases
* Added CallbackMonitor
* Added enums (lpd.enums) State, MonitorType, MonitorMode, StatsType
0.1.0 (05/10/2020)
-----------------
* Introduced Phase and State to control timing of callback invocation
* Added example of SchedulerStep every batch in train state
* Trainer support for native pytorch dataloader
* Added data loader example
0.0.9 (04/10/2020)
-----------------
* Added support for setting trainer's scheduler to None
* Added name property to trainer
* Added trainer's description
* Added last train/val/test loss objects
* Reduce package size by moving images to another repo
* Added another example "Basic"
* If no metrics provided, EpochEndStats will print "no metrics found"
* Fixed trainer crash if no metric_name_to_func was provided
* Added seed_all to general_utils
* Added seed_torch to torch_utils
* Added readme about utils
0.0.8 (03/10/2020)
-----------------
* Added optional round_values_on_print_to to EpochEndStats and ModelCheckPoint callbacks
* Removed round_values_to from TrainerStats & Stats (it didnt made sense anyway)
* Removed print_round_values_to from trainer, its now on the callbacks themselves
* Updated readme
0.0.7 (03/10/2020)
-----------------
* Splited TrainerStats class into TrainerStats & Stats
* Can now easily call trainer.train_stats.get_loss() or trainer.val_stats.get_metrics()
* TrainerStats now has a reset() function
* Using configs in example
* Code clean up and cosmetics
0.0.6 (02/10/2020)
-----------------
* Scheduler step as callback, support for step() with or without parameters
0.0.1 (01/10/2020)
-----------------
- First Release