【问题标题】:Did model.fit() initiate model's weights in keras?model.fit() 是否在 keras 中启动了模型的权重?
【发布时间】:2019-05-12 00:36:50
【问题描述】:

1.

model = Model(inPut, outputs=outPut)
model.compile(loss="mse", optimizer="adam")
for i in range(10):
   model.fit(dataX, dataY, epochs=EPOCH, batch_size=BATCHSIZE, verbose=0, shuffle=False)
   #save model

2.

model = Model(inPut, outputs=outPut)
for i in range(10):
   model.compile(loss="mse", optimizer="adam")
   model.fit(dataX, dataY, epochs=EPOCH, batch_size=BATCHSIZE, verbose=0, shuffle=False)
   #save model

3.

for i in range(10):
   model = Model(inPut, outputs=outPut)
   model.compile(loss="mse", optimizer="adam")
   model.fit(dataX, dataY, epochs=EPOCH, batch_size=BATCHSIZE, verbose=0, shuffle=False)
   #save model

我在 keras 中研究过神经网络。

我希望每次迭代都是每次学习。

但是第二次(第三次..第四次..)迭代学习(model.fit)正在持续进行第一次学习(model.fit)

损失在三个代码中不断发生。

你能告诉我一些每次迭代都是每次学习的方法吗?

每个迭代模型都是另一个模型。

【问题讨论】:

  • 我不确定你在追求什么。你只是想在EPOCH epochs 之后继续使用fit 吗? model.fit 从上一个 epoch 恢复训练,所以如果我明白你想要什么,它已经在做你想要的了。
  • 我希望每个模型在交互上都不同。但在我的代码中,每个 for 语句都是相同的模型。第一个模型保存后,当我训练第二个模型时,模型已经在训练(第一个模型继续应用)。

标签: python keras


【解决方案1】:

如果您打算创建经过不同训练的模型但保持相同的架构,那么您的代码 sn-p #3 就是您所追求的。您使用相同的架构创建一个新模型,配置神经网络,然后对其进行训练。每次迭代后,请确保保存模型。

【讨论】:

  • 但是,当我使用#3 时,我得到的结果与#1 和#1 相同。
  • 那么你的代码在别处有问题。请提供您的完整代码,以便它可以重现。照原样,没有人可以重现您的发现。
猜你喜欢
  • 2018-04-23
  • 2019-05-20
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 2018-10-31
  • 2020-11-01
  • 2018-06-21
相关资源
最近更新 更多