2017-06-26 19 views
2

私はPythonプログラミングが初めてです。 Kerasを使ってシーケンスデータをモデリングするためのLSTM用のPythonスクリプトを書いた。全体的に、学習速度とモデルである実行ごとに手動で調整する必要がある2つのオプションがあります。Python:複数のオプションを実装するコード構造を整理する方法

4種類の学習率(1e-2,1e-3,1e-4,1e-5)と4種類の異なるモデル(model1、mode2、model3、model4)をテストしたいと考えています。これらのモデルは、Kerasによって提供されるモデル、例えばLSTM、SimpleRNNまたはGRUであることに留意されたい。私はmodel1、model2 ...を使っています。

#pseudo-codes 
learningRate = 1e-2 #tunable parameter 
model = Sequential() 
model.add(model1(hidden_uints)) #other inputs within the model is omitted 
#model1 is to be changed to model2, model3 and model4 later 

model.complie(optimizer = sgd(lr = learningRate)) 

model.fit(xtrain,ytrain) 

訓練が行われるたびに、私は別の実行のための学習率とMODEL3を調整します:次のように現時点では

は、私のコードが構成されています。これらのオプション(4 * 4 = 16回の実行)を一度に実装するためには、より適切なコード構造が必要であると感じています。

答えて

3

あなたはこのような何かを試すことができます。

learningRates = [1e-2, 1e-3, 1e-4, 1e-5] 
models = [model1(), model2(), model3(), model4()] 

run_opts = [(lrnRate, mdl) for lrnRate in learningRates for mdl in models] 

for run_opt in run_opts: 

    learningRate, model_num = run_opt 
    model = Sequential() 
    model.add(model_num) 
    model.compile(optimizer = sgd(lr = learningRate)) 

    model.fit(xtrain, ytrain) 
+0

この解決策はrun_optsリストでは16の項目...速度とモデルの、すなわちクロス製品を生産することに留意すべきです。私のソリューションは、パラメータリストに4つの項目を生成します。 Run_optsとパラメータは基本的に同じ考えです。手動で作成した設定のリストです。私はあなたがほしいと思うか分からない。 –

+0

モデルは私が定義したモデルではなく、LSTM、SimpleRNN、GRUなどのKerasで指定されているモデルではありません。したがって、これらのモデルを単一のリストにまとめることはできません。私は自分の質問を編集しました。 – jingweimo

+0

「keras.models import 」、「」など、他のモデルをインポートしているということですか?使用しているモデルのリストを作成することはできます。 – jack6e

関連する問題