Keras中连续训练多个模型进行超参数优化

2024-04-25 22:27:39 发布

您现在位置:Python中文网/ 问答频道 /正文

其思想是使用同一个训练数据集训练多个模型,每次都改变一些参数,以查看哪个参数效果最好。为了做到这一点,我需要每一个模型从零开始训练每一次。你知道吗

我目前的代码(简体)是:

scores= []

for i in range(n):
    model = Sequential()
    model.add(...)
    model.compile(...)
    model.fit(...)
    scores.append([i, model.score(...)])

for score in scores:
    print(score)

它按预期运行打印:

[0, 0.89712456798]
[1, 0.76652347349]
[2, 0.83178943210]
...

但是如果代码实现了上面描述的功能,或者相反地,训练依赖于前一个模型的模型,我就不能理解了。你知道吗


Tags: 数据代码in模型addfor参数model
2条回答

你的密码很好。它每次创建一个新模型。你知道吗

但我建议在普拉尔训练多个模型。我刚刚发现了RayLib,它非常适合这个任务。你知道吗

https://ray.readthedocs.io/en/latest/auto_examples/plot_hyperparameter.html

您的代码包含4个并行训练课程,每个课程有5个迭代:

import ray

@ray.remote
def train(sequence):
    scores= []
    for i in range(sequence)
        model = Sequential()
        model.add(...)
        model.compile(...)
        model.fit(...)
        scores.append([i, model.score(...)])
    return scores

n=4
results = []
for i in range(n):
    results.append(train.remote(5))

results_data = ray.get(results)

for i in results_data:
    print(i)

您可以将超参数作为训练函数的输入,并快速测试不同的体系结构。 RayLib需要Ubuntu-tho。你知道吗

每次你打电话

model = Sequential()

您的模型被重新初始化,因此上面的代码草图确实执行了您希望它执行的操作,即为每个循环迭代从头开始装配一个新模型。你知道吗

相关问题 更多 >