簡體   English   中英

Keras load_model在訓練后無法正常工作

[英]Keras load_model not working after training

我在這里使用了示例代碼: https//github.com/fchollet/keras/issues/2295

在keras中訓練之后我無法加載我的模型。 我收到以下錯誤:

ValueError: Optimizer weight shape (3, 3, 512, 512) not compatible with provided weight shape (256, 43)

我嘗試使用HDFView並刪除優化器權重並重新加載。 但后來我得到了錯誤:

ValueError: ('shapes (10,4224) and (1128,256) not aligned: 4224 (dim 1) != 1128 (dim 0)', (10, 4224), (1128, 256))
Apply node that caused the error: Dot22(Reshape{2}.0, lstm_2_W_i)
Toposort index: 249
Inputs types: [TensorType(float32, matrix), TensorType(float32, matrix)]
Inputs shapes: [(10, 4224), (1128, 256)]
Inputs strides: [(16896, 4), (1024, 4)]
Inputs values: ['not shown', 'not shown']
Outputs clients: [[Elemwise{Add}[(0, 0)](Dot22.0, InplaceDimShuffle{x,0}.0)]]

我還嘗試將架構保存到JSON並單獨保存權重,然后加載,但即使失敗也是如此。

我能夠設計出一種解決方法。 我能夠使用以下步驟加載訓練的模型:

  1. 創建順序模型。 示例: model = Sequential() model.add(...) model.add(...) model.compile(...) model.fit(...)

  2. 訓練后僅使用model.save_weights()保存模型權重示例: model.save_weights(SaveLocation)

  3. 要加載模型權重,請按照步驟1中的編程方式創建模型,但不要使用model.compile函數。 示例: model = Sequential() model.add(...) model.add(...) model.load_weights(weightFile)

  4. 現在已成功加載權重。

暫無
暫無

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

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