Skip to content

AdaNet v0.8.0

Compare
Choose a tag to compare
@cweill cweill released this 02 Oct 17:31
· 71 commits to master since this release
  • Add support for TensorFlow 2.0.
  • Begin developing experimental Keras API for auto-ensembling.
  • Support advanced subnetworks and subestimators that need to read and write from disk by giving them a dedicated subdirectory in model_dir.
  • Fix race condition in parallel evaluation during distributed training.
  • Support subnetwork hooks requesting early stopping.
  • Adding AdaNet replay. The ability to rerun training without having to determine the best candidate for the iteration. A list of best indices from the previous run is provided and honored by AdaNet.
  • Introduced adanet.ensemble.MeanEnsembler with a basic implementation for taking the mean of logits of subnetworks. This also supports including the mean of last_layer (helpful if subnetworks have same configurations) in the predictions and export_outputs of the EstimatorSpec.
  • BREAKING CHANGE: AdaNet now supports arbitrary metrics when choosing the best ensemble. To achieve this, the interface of adanet.Evaluator is changing. The Evaluator.evaluate_adanet_losses(sess, adanet_losses) function is being replaced with Evaluator.evaluate(sess, ensemble_metrics). The ensemble_metrics parameter contains all computed metrics for each candidate ensemble as well as the adanet_loss. Code which overrides evaluate_adanet_losses must migrate over to use the new evaluate method (we suspect that such cases are very rare).
  • Allow user to specify a maximum number of AdaNet iterations.
  • BREAKING CHANGE: When supplied, run the adanet.Evaluator before Estimator#evaluate, Estimator#predict, and Estimator#export_saved_model. This can have the effect of changing the best candidate chosen at the final round. When the user passes an Evaluator, we run it to establish the best candidate during evaluation, predict, and export_saved_model. Previously they used the adanet_loss moving average collected during training. While the previous ensemble would have been established by the Evaluator, the current set of candidate ensembles that were not done training would be considered according to the adanet_loss. Now when a user passes an Evaluator that, for example, uses a hold-out set, AdaNet runs it before making predictions or exporting a SavedModel to use the best new candidate according to the hold-out set.
  • Support tf.keras.metrics.Metrics during evaluation.
  • Allow users to disable summaries to reduce memory and disk footprint.
  • Stop individual subnetwork training on OutOfRangeError raised during bagging.
  • Train forever if max_steps and steps are both None.