keras load_weights()无法加载权重

时间:2018-09-11 17:13:49

标签: python neural-network keras

我想从.hdf5文件中加载权重,并使用load_weights()。 不会发生错误。但是当我使用模型进行预测时。在加载权重之前,结果与模型相同。

负载重量不起作用。 我的keras版本是2.2.2 tensorflow版本是1.10.0

如何解决此问题。 谢谢

1 个答案:

答案 0 :(得分:1)

您是否已减轻过这样的重量和负载重量?

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

model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1,activation='sigmoid'))

编译模型

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

调整模型并进行评估

model.fit(X, Y, epochs=150, batch_size=10, verbose=0)
scores = model.evaluate(X, Y, verbose=0)
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))

将模型序列化为JSON

model_json = model.to_json()
with open("model.json", "w") as json_file:
    json_file.write(model_json)

将权重序列化为HDF5

model.save_weights("model.h5")
print("Saved model to disk")

后来... 加载json并创建模型

json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)

将权重加载到新模型中

loaded_model.load_weights("model.h5")
print("Loaded model from disk")

根据测试数据评估加载的模型

loaded_model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
score = loaded_model.evaluate(X, Y, verbose=0)
print("%s: %.2f%%" % (loaded_model.metrics_names[1], score[1]*100))