簡體   English   中英

無法保存和加載 Keras model

[英]Unable to save and load Keras model

model = Sequential()
model.add(Conv2D(16, (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dense(3))
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer='rmsprop',
              metrics=['accuracy'])
...

history = model.fit_generator(
    train_generator,
    steps_per_epoch=number_training_samples // batch_size,
    epochs=epochs,
    validation_data=validation_generator,
    validation_steps=number_validation_samples // batch_size)

model.save('last_try.h5')

如上所示,我嘗試使用model.save('final_try.h5')保存我的 model 。 但這似乎不起作用。 然后,當我嘗試加載預先存在的 first_try.h5 時,它也無法from keras.models import load_model model = load_model('first_try.h5')這給我錯誤ValueError: Cannot create group in read-only mode.

您可以通過2種方法保存和加載keras model

  1. 您可以將權重和架構保存在 one.h5 文件中

    model.save('final_try.h5')

    然后輕松加載

    model = load_model('first_try.h5')
  2. 您可以將您的權重保存在.h5 中,並將您的架構保存在.json 文件中。 所以錯誤,

     ValueError: Cannot create group in read-only mode.

    意味着您正在嘗試僅加載 model 的重量而沒有其架構。 使用此方法,您必須加載 model 的 json 架構或定義它

    model.load_weights('model_weights.h5')

像這樣保存它:

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

然后為了有效地將其加載到應用程序中,將其設置為如下全局,以便它不會一次又一次地加載:

    def load_model():

        global model

        json_file = open('model.json', 'r')
        model_json = json_file.read()
        model = model_from_json(model_json)
        model.load_weights("model.h5")
        model._make_predict_function()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM