- Under development.
- TODO: Add official Keras Model support, including Keras layers, Sequential, and Model subclasses for defining subnetworks.
- Maintain compatibility with TensorFlow versions >=1.9.
- Officially support AdaNet on TPU using
adanet.TPUEstimatorwithadanet.Estimatorfeature parity. - Support dictionary candidate pools in
adanet.AutoEnsembleEstimatorconstructor to specify human-readable candidate names. - Improve AutoEnsembleEstimator ability to handling custom
tf.estimator.Estimatorsubclasses. - Introduce
adanet.ensemblewhich contains interfaces and examples of ways to learn ensembles using AdaNet. Users can now extend AdaNet to use custom ensemble-learning methods. - Record TensorBoard
scalar,image,histogram, andaudiosummaries on TPU during training. - Add debug mode to help detect NaNs and Infs during training.
- Improve subnetwork
tf.train.SessionRunHooksupport to handle more edge cases. Maintain compatibility with TensorFlow versions 1.9 thru 1.13Only works for TensorFlow version >=1.13.- Improve documentation including adding 'Getting Started' documentation to adanet.readthedocs.io.
- BREAKING CHANGE: Importing the
adanet.subnetworkpackage usingfrom adanet.core import subnetworkwill no longer work, because the package was moved to theadanet/subnetworkdirectory. Most users should already be usingadanet.subnetworkorfrom adanet import subnetwork, and should not be affected.
- Support training on TPU using
adanet.TPUEstimator. - Allow subnetworks to specify
tf.train.SessionRunHookinstances for training withadanet.subnetwork.TrainOpSpec. - Add API documentation generation with Sphinx.
- Fix bug preventing subnetworks with Resource variables from working beyond the first iteration.
- Add
sharedfield toadanet.Subnetworkto deprecate, replace, and be more flexible thanpersisted_tensors. - Officially support multi-head learning with or without dict labels.
- Rebuild the ensemble across iterations in Python without a frozen graph. This allows users to share more than
Tensorsbetween iterations including Python primitives, objects, and lambdas for greater flexibility. Eliminating reliance on aMetaGraphDefproto also eliminates I/O allowing for faster training, and better future-proofing. - Allow users to pass custom eval metrics when constructing an
adanet.Estimator. - Add
adanet.AutoEnsembleEstimatorfor learning to ensembletf.estimator.Estimatorinstances. - Pass labels to
adanet.subnetwork.Builder'sbuild_subnetworkmethod. - The TRAINABLE_VARIABLES collection will only contain variables relevant to the current
adanet.subnetwork.Builder, so not passingvar_listto theoptimizer.minimizewill lead to the same behavior as passing it in by default. - Using
tf.summaryinsideadanet.subnetwork.Builderis now equivalent to using theadanet.Summaryobject. - Accessing the
global_stepfrom within anadanet.subnetwork.Builderwill return theiteration_stepvariable instead, so that the step starts at zero at the beginning of each iteration. One subnetwork incrementing the step will not affect other subnetworks. - Summaries will automatically scope themselves to the current subnetwork's scope. Similar summaries will now be correctly grouped together correctly across subnetworks in TensorBoard. This eliminates the need for the
tf.name_scope("")hack. - Provide an override to force the AdaNet ensemble to grow at the end of each iteration.
- Correctly seed TensorFlow graph between iterations. This breaks some tests that check the outputs of
adanet.Estimatormodels.
- Add official support for
tf.keras.layers. - Fix bug that incorrectly pruned colocation constraints between iterations.
- Estimator no longer creates eval metric ops in train mode.
- Freezer no longer converts Variables to constants, allowing AdaNet to handle Variables larger than 2GB.
- Fixes some errors with Python 3.
- Initial AdaNet release.
- tf-nightly>=1.9.0.dev20180601 || tensorflow>=1.9.0rc0