Python:如何组织代码结构来实现多个选项

时间:2017-06-26 18:19:54

标签: python

我是Python编程的新手。我为LSTM编写了一个python脚本,用于使用Keras对序列数据进行建模。总的来说,现在我有两个选项需要手动调整每次运行,即学习率和模型。

我想测试四种不同的学习率(即1e-2,1e-3,1e-4和1e-5)和四种不同的模型(即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)

每次训练完成后,我都会调整学习率和模型3进行另一次训练。我觉得应该有一个更合适的代码结构来同时实现这些选项(4 * 4 = 16次运行)。

1 个答案:

答案 0 :(得分: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)