この記事は TensorFlow Advent Calendar 2018 の 23 日目のはずだったけど、早く書き終わって我慢できなかったので空いてた 6 日目にねじ込んでしまったやつです。 こういう話があったので、ちょっと TensorFlow 用に Optuna の枝刈り機能を実装できそうか手を動かしてみました。 できた?一応動くね! 前提知識TensorFlow の Estimator をちょっと使ったことがあるOptuna が何なのかは知っていてサンプルコードを試しに動かしたことがある(枝刈りが何かの説明とかはしません何ができれば良い?Optuna 側に callback 的なもので定期的に現在の評価指標と反復回数を渡せれば OK のようです。 lightgbm の場合はこんなふうに callback が実装されています。 各学習の途中でこうやって Optuna に trial.
![TensorFlow の SessionRunHook で Optuna の枝刈り](https://cdn-ak-scissors.b.st-hatena.com/image/square/24f329c762c2cca8c869cd98faf1fdea8dda635d/height=288;version=1;width=512/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1023%2F1%2AGTf9LHLp4hh6zB1wV1icYQ.png)