GridSearchCVは、ハイパーパラメーターを自動的にテストおよび最適化するための優れた方法です。 TensorFlowEstimatorで使用して、learning_rate、batch_sizeなどを最適化します。 カスタムモデルの他のパラメーターをカスタマイズするためにも使用できるとしたら、それは素晴らしい追加です。
たとえば、畳み込みニューラルネットワークを使用したカスタムモデルがあり、ストライド値を最適化するとします。 この擬似コードは、私が達成しようとしていることを説明しています。
例として、モデル関数へのカスタム「params」入力を使用しました。これが、この機能を実装するための正しい方法である必要があることを意味するものではありません。
# My custom model.
# Feature request: New params dict with values filled by GridSearchCV
def cnn_model(X, Y, params):
stride = params['stride']
... custom model definition here ...
# Create the Convnet classifier
cnn_classifier = learn.TensorFlowEstimator(model_fn=cnn_model)
# Grid search on different stride values.
parameters = {'stride': [1, 2, 3],}
grid_searcher = GridSearchCV(cnn_classifier, parameters)
grid_searcher.fit(X, Y)
それは私たちのTODOリストにあります。 ハイパーパラメータをモデルに渡す一般的な方法をうまく行う方法を理解しようとしているだけです。
@ilblackdragonこれに関する更新はありますか?
モデル関数にはparams
引数があります。 TensorFlowEstimator
は非推奨です。 params
Estimator
を使用してください。 これでうまくいくはずです。うまくいかない場合は、もう一度開いてください。
最も参考になるコメント
@ilblackdragonこれに関する更新はありますか?