Python 在一个循环中拟合不同历元数的神经网络,而无需每次重复
我正在使用Python 在一个循环中拟合不同历元数的神经网络,而无需每次重复,python,loops,neural-network,deep-learning,keras,Python,Loops,Neural Network,Deep Learning,Keras,我正在使用keras库在python中拟合一个递归神经网络。通过在Sequential.fit()函数中更改参数nb_epoch,我用不同的epoch编号来拟合模型。目前,我正在使用for循环,每次我更改nb_epoch时都会重新开始拟合,这是大量重复的工作。这是我的代码(如果您想跳过代码细节的其他部分,循环位于代码的底部): 现在这个循环效率很低。因为例如,当它设置时,比如说,nb_epoch=100,它从epoch=1开始训练,在epoch=100结束训练,如下所示: Epoch 1/100
keras
库在python
中拟合一个递归神经网络。通过在Sequential.fit()函数中更改参数nb_epoch
,我用不同的epoch
编号来拟合模型。目前,我正在使用for
循环,每次我更改nb_epoch
时都会重新开始拟合,这是大量重复的工作。这是我的代码(如果您想跳过代码细节的其他部分,循环位于代码的底部):
现在这个循环效率很低。因为例如,当它设置时,比如说,nb_epoch
=100,它从epoch=1
开始训练,在epoch=100
结束训练,如下所示:
Epoch 1/100
0s - loss: 1.9508 - val_loss: 296.7801
.
.
.
Epoch 100/100
0s - loss: 7.6575 - val_loss: 366.2218
在循环的下一次迭代中,它表示nb_epoch=200
它再次从epoch=1
开始训练,并在epoch=200
结束。但我想做的是,在这个迭代中,从循环的最后一个迭代中剩下的地方开始训练,即epoch=100
,然后epoch=101
,依此类推
如何修改此循环以实现此目的 连续调用fit
将进一步训练您的模型,从上次调用时留下的状态开始。要使其不继续,必须重置模型的权重,而拟合
则不行。你只是没有看到它是这样做的,因为它总是从1开始计算时代
所以最后的问题是它没有打印正确的历代数(你不能更改)
如果这让您感到困扰,您可以通过定期调用来实现自己的fit
。您可以使用fit的initial\u epoch
参数(请参阅)
Epoch 1/100
0s - loss: 1.9508 - val_loss: 296.7801
.
.
.
Epoch 100/100
0s - loss: 7.6575 - val_loss: 366.2218