From 54998faa37769a059aba2e16cb94c70c72e9895a Mon Sep 17 00:00:00 2001 From: Mathieu Guillame-Bert Date: Fri, 21 May 2021 11:50:40 -0700 Subject: [PATCH] Internal change PiperOrigin-RevId: 375132461 --- CHANGELOG.md | 3 ++- configure/setup.py | 2 +- documentation/known_issues.md | 23 ------------------- tensorflow_decision_forests/__init__.py | 2 +- .../tensorflow/ops/training/kernel.cc | 2 +- 5 files changed, 5 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3238c563..8613c2da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,11 @@ # Changelog -## 0.1.4 - ???? +## 0.1.4 - 2021-05-21 ### Features - Stop the training when interrupting a colab cell / typing ctrl-c. +- `model.fit` support training callbacks and a validation dataset. ### Bug fix diff --git a/configure/setup.py b/configure/setup.py index 6dfc8abe..c60d50b1 100644 --- a/configure/setup.py +++ b/configure/setup.py @@ -20,7 +20,7 @@ from setuptools.command.install import install from setuptools.dist import Distribution -_VERSION = "0.1.3" +_VERSION = "0.1.4" with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read() diff --git a/documentation/known_issues.md b/documentation/known_issues.md index 9fd5bb36..c5ba937f 100644 --- a/documentation/known_issues.md +++ b/documentation/known_issues.md @@ -51,29 +51,6 @@ numerical/categorical features would be 4 GB in memory. * Train a manual ensemble on slices of the dataset, i.e. train N models on N slices of data, and average the predictions. -## No support for training callbacks. - -Training callbacks will not get the expected metrics passed to on_epoch_end -since TF-DF algorithms are trained for only one epoch, and the validation -data is evaluated before the model is trained. Evaluation callbacks are -supported. - -**Workaround** - -By design TF-DF algorithms train for only one epoch, so callbacks that override -on_epoch_end can be instantiated and called manually with the metrics from -model.evaluate(). Specifically: - -```diff {.bad} -- cb = tf.keras.callbacks.Callback() -- model.fit(train_ds, validation_data=val_ds, callbacks=[cb]) -``` - -```diff {.good} -+ model.fit(train_ds) -+ cb.on_epoch_end(epoch=1, logs=model.evaluate(val_ds, ...)) -``` - ## No support for GPU / TPU. TF-DF does not support GPU or TPU training. Compiling with AVX instructions, diff --git a/tensorflow_decision_forests/__init__.py b/tensorflow_decision_forests/__init__.py index 605216d5..f2ab5688 100644 --- a/tensorflow_decision_forests/__init__.py +++ b/tensorflow_decision_forests/__init__.py @@ -45,7 +45,7 @@ """ -__version__ = "0.1.3" +__version__ = "0.1.4" __author__ = "Mathieu Guillame-Bert" from tensorflow_decision_forests import keras diff --git a/tensorflow_decision_forests/tensorflow/ops/training/kernel.cc b/tensorflow_decision_forests/tensorflow/ops/training/kernel.cc index 64ec1274..152e2cc5 100644 --- a/tensorflow_decision_forests/tensorflow/ops/training/kernel.cc +++ b/tensorflow_decision_forests/tensorflow/ops/training/kernel.cc @@ -644,7 +644,7 @@ std::atomic stop_training; void (*previous_signal_handler)(int); // Number of learners training. -std::atomic active_learners = 0; +std::atomic active_learners(0); void StopTrainingSignalHandler(int signal) { stop_training = true; } } // namespace