簡體   English   中英

Keras減輕體重

[英]Keras Weights Saving

我正在使用預訓練的Keras模型MobileNets。 我正在嘗試將一個圖層的權重保存在文本文件中。 權重矩陣的維數如下:

      layerr = model.layers[2].get_weights()
      print(layerr.shape)

      (1, 3, 3, 3, 32)

對於哪個3對應於通道,哪個對應於高度和寬度,我感到困惑。 我知道32對應於過濾器的數量。

另外,如果您可以幫助我將它們另存為線性矩陣,那將非常好!

有點奇怪, get_weights()應該返回一個列表,在此代碼中情況並非如此。 無論如何,假設您從列表中選擇了正確的數組,並假設它是3D卷積...(否則有些事情不太正確,我想請您分享確切的圖層定義)。

聽起來像是3D卷積濾波器,其中這些數字按順序排列:

  • 1空間維度1
  • 3空間維度2
  • 3空間維度3
  • 3個輸入通道
  • 32個輸出通道

保存numpy數組有幾種方法。 我喜歡numpy.save()

np.save('filename.npy', layerr)

您還可以創建一個文本文件並將其另存為文本:

with open('filename.txt', 'w') as f:
    f.write(str(layerr))

不確定“線性矩陣”是什么,但是如果只需要一個維度,則可以調整形狀:

flatWeights = layerr.reshape((-1,))
#then save

但是,如果要保存以后使用,最好使用model.save()model.save_weights()

暫無
暫無

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

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