tensorflow / adanet

Fast and flexible AutoML with learning guarantees.
https://adanet.readthedocs.io
Apache License 2.0
3.47k stars 529 forks source link

adanet.ensemble.Ensembler not used in Tutorials? #148

Open le-dawg opened 4 years ago

le-dawg commented 4 years ago

Obsolete Apparently I was incorrect in my assessment! @cweill I have been stumbling upon discrepancies between docs and code a few times in the examples and I want to phrase this as a question:

# TODO: Delete deprecated build_mixture_weights_train_op method.
# Use adanet.ensemble.Ensembler instead.

According to the doc and original paper this would imply that the tutorials actually do not form ensembles. Is that the case?

cweill commented 4 years ago

@le-dawg I think you make a good point: we need to update our tutorials to use the tf.ensemble.Ensemblers.

le-dawg commented 4 years ago

Updated OP.

le-dawg commented 4 years ago

Can you point me to any reference implementation? I have deriived my Builder and Generator classes from the tutorial definition but I am stuck trying to determine wehterh and als HOW my AdaNet instance is Ensembling. Given that build.mixtureweight doesnt compute anything I wonder what the final ensembles look like. @cweill

le-dawg commented 4 years ago

Edited the typos, I have a freshly fractured hand :/

cweill commented 4 years ago

According to the doc and original paper this would imply that the tutorials actually do not form ensembles. Is that the case?

They still create ensembles, it just that we now use the adanet.ensemble.Ensembler suclasses to handle this feature. In the tutorials, they were using the old method with the build_mixture_weights. The same behavior can be found in the adanet.ensemble.ComplexityRegularizedEnsembler class, which will create one new candidate ensemble per subnetwork per iteration, where the ensemble is composed of the previous iteration's ensemble and new subnetwork.