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

Python:如何组织代码结构以实现多个选项,python,Python,我是Python编程新手。我为LSTM编写了一个python脚本,用于使用Keras对序列数据进行建模。总的来说,现在我需要为每次跑步手动调整两个选项,即学习率和模式 我想测试四种不同的学习率(即1e-2、1e-3、1e-4和1e-5)和四种不同的模型(即模型1、模型2、模型3和模型4)。应该注意的是,这些模型是由Keras提供的,例如LSTM、SimpleRN或GRU。我使用模型1,模型2…,只是为了说明 目前,我的代码结构如下: #pseudo-codes learningRate = 1e

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

我想测试四种不同的学习率(即1e-2、1e-3、1e-4和1e-5)和四种不同的模型(即模型1、模型2、模型3和模型4)。应该注意的是,这些模型是由Keras提供的,例如LSTM、SimpleRN或GRU。我使用模型1,模型2…,只是为了说明

目前,我的代码结构如下:

#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次运行)

您可以尝试以下方法:

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)

应该注意的是,此解决方案在运行选项列表中生成16项。。。i、 e.费率和模型的叉积。我的解决方案在参数列表中生成4项。Run_选项和参数基本上是相同的想法:一个手动创建的设置列表。我不知道您想要哪个。这些模型不是我定义的,而是由Keras指定的,例如LSTM、SimpleRN、GRU等。因此我无法将它们合并到一个列表中。我已经编辑了我的问题。你是说你正在从keras导入那些其他模型,即
。模型导入,
等等?您仍然可以创建正在使用的任何模型的列表。