This repository was archived by the owner on Apr 19, 2026. It is now read-only.
AdaNet v0.4.0
- 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.