我想从.hdf5
文件中加载权重,并使用load_weights()
。
不会发生错误。但是当我使用模型进行预测时。在加载权重之前,结果与模型相同。
负载重量不起作用。
我的keras
版本是2.2.2
tensorflow
版本是1.10.0
如何解决此问题。 谢谢
答案 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))