Keras同时预测和更新神经元权值



我已经使用Keras构建了(model.compile())一个神经网络模型。然后我用我的火车数据拟合了模型(model.fit())。最后,我使用模型来预测(model.predict())测试数据的值。

根据我的理解,在拟合模型的过程中,网络神经元的权值在每批中都在更新。预测的时候还是这样吗?在预测时,神经网络的权重是否会对每批进行更新?是否有可能打开或关闭这个选项?我正在运行两个分析,在第一个分析中,我希望权重在预测时不更新,但在另一个分析中,我希望权重更新每个批次。

权重在预测时不更新,只有在训练时才更新,因此只针对Model.fit

权值在训练过程中每批完成后都会更新,训练完模型后,可以保存后使用:

# Save model
model.save('saved_model.h5')
# Loading saved model weights
model.load_weights('saved_model.h5')

,然后使用保存的模型预测测试数据值。

如果你想对更新过程进行任何更改,你可以更改与权重更新相关的超参数,包括epoch数批大小

反向传播算法使用初始权值,并通过迭代过程进行优化。让我们假设您已经存储了训练模型(通过反向传播算法计算的优化权重),然后再次加载模型。现在,您有一堆新数据,需要根据它们更新您的最后权重。因此,请尝试以下脚本,其中X和y是新数据:

if old_model_weights_modified=='Yes':
model = tf.keras.models.load_model(modelpath)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.5, random_state=42)
history = model.fit(X_train, y_train, epochs=100, batch_size=60, validation_data=(X_val, y_val))
predictions = pd.DataFrame(model.predict(X)) 

也就是说,load_model"命令加载最新模型的权重和"model.fit";Command将其作为初始权值,并根据新数据更新初始权值。

相关内容

  • 没有找到相关文章

最新更新