keras每个批次保存训练信息(模型)

keras每个批次(或设置批次间隔)保存训练信息(模型),防止耗时较长的的模型训练中断导致重新训练。

方法

使用  model.train_on_batch(X_train, Y_train) 函数进行训练。

保存模型图示

完整实例(简单实例说明原理)

import numpy as np

np.random.seed(1337)  # for reproducibility

from keras.models import Sequential
from keras.layers import Dense
from keras.models import load_model

# create some data
X = np.linspace(-1, 1, 200)
np.random.shuffle(X)  # randomize the data
Y = 0.5 * X + 2 + np.random.normal(0, 0.05, (200,))
X_train, Y_train = X[:160], Y[:160]  # first 160 data points
X_test, Y_test = X[160:], Y[160:]  # last 40 data points
model = Sequential()
model.add(Dense(output_dim=1, input_dim=1))
model.compile(loss='mse', optimizer='sgd')
for step in range(301):
    cost = model.train_on_batch(X_train, Y_train)
    strModel = 'my_model' + str(step) + '.h5'
    model.save(strModel)  # HDF5 file, you have to pip3 install h5py if don't have it

# save
print('test before save: ', model.predict(X_test[0:2]))
model.save('my_model.h5')  # HDF5 file, you have to pip3 install h5py if don't have it
del model  # deletes the existing model

# load
model = load_model('my_model.h5')
print('test after load: ', model.predict(X_test[0:2]))

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用Keras实现BP神经网络模型学习的示例代码,包括训练模型、显示训练结果和保存模型: ```python from keras.models import Sequential from keras.layers import Dense from keras.optimizers import SGD import numpy as np # 构建一个简单的BP神经网络模型 model = Sequential() model.add(Dense(units=10, input_dim=2, activation='relu')) model.add(Dense(units=1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer=SGD(lr=0.1), metrics=['accuracy']) print(model.summary()) # 生成训练数据 X = np.random.rand(1000, 2) y = np.array([int(x1+x2>1) for x1,x2 in X]) # 训练模型 history = model.fit(X, y, epochs=50, batch_size=32, validation_split=0.2) # 显示训练结果 import matplotlib.pyplot as plt plt.plot(history.history['accuracy']) plt.plot(history.history['val_accuracy']) plt.title('Model Accuracy') plt.ylabel('Accuracy') plt.xlabel('Epoch') plt.legend(['train', 'test'], loc='upper left') plt.show() # 保存模型 model.save('my_model.h5') ``` 在这个示例中,我们首先使用Keras的Sequential模型构建了一个简单的BP神经网络模型,包含一个10个神经元的隐层和一个输出为1个神经元的输出层。然后,我们编译模型并打印模型的摘要信息。 接下来,我们生成了1000个随机的2维数据作为训练数据,并使用生成的数据训练模型。在训练过程中,我们设置了50个epochs,每批次32个样本,验证集占训练集的20%。 在训练完成后,我们使用matplotlib库绘制了训练结果图表,并保存模型。最后,我们可以使用 `model.load_weights('my_model.h5')` 加载保存模型权重,并使用该模型进行预测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值