【发布时间】:2021-11-13 19:48:20
【问题描述】:
考虑以下代码:
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam
def build_model():
model = Sequential()
model.add(Dense(units=64, kernel_initializer='uniform', activation='relu'))
model.add(Dense(units=128, kernel_initializer='uniform', activation='relu'))
model.add(Dense(units=64, kernel_initializer='uniform', activation='relu'))
model.add(Dense(units=1, kernel_initializer='uniform', activation='relu'))
optimizer = Adam(learning_rate=0.001)
model.compile(loss='mean_squared_error', optimizer=optimizer)
return model
model1 = build_model()
model1.fit(X_train, Y_train, epochs=10, batch_size=64, verbose=0) # Initial fitting.
keras.models.save_model(model1, f"models/initial") # Saving the model before further fitting.
model1.fit(X_train, Y_train, epochs=15, batch_size=64, verbose=0)
predictions1 = model1.predict(X_test)
model2 = keras.models.load_model(f"models/initial") # Loading the model after the initial fitting.
model2.fit(X_train, Y_train, epochs=15, batch_size=64, verbose=0)
predictions2 = model2.predict(X_test)
print("--------------------------------")
print(predictions1)
print("--------------------------------")
print(predictions2)
print("--------------------------------")
我建立了一个模型,我最初很适合。然后我保存模型。之后,模型进一步拟合 15 个 epoch 并进行预测。最终模型未保存。 之后,加载保存的模型(前 10 个 epoch 之后的拟合)并执行与上述相同的过程(进一步拟合和预测)。 两个预测的结果应该是相同的,因为应该使用相同的模型,但是,它们不是。知道这可能是什么原因吗? 以下是我得到的结果:
--------------------------------
[[2350.2917]
[2369.7139]
[2367.1833]
[2373.8337]
[2369.4788]
[2373.716 ]
[2372.0095]
[2374.5989]
[2374.658 ]]
--------------------------------
[[2532.1902]
[2571.7231]
[2566.572 ]
[2580.1086]
[2571.2444]
[2579.8694]
[2576.395 ]
[2581.6663]
[2581.786 ]]
--------------------------------
Process finished with exit code 0
【问题讨论】:
标签: python tensorflow keras deep-learning neural-network