簡體   English   中英

Caffe:使用相同的預訓練權重初始化兩個頻道的連體網絡,但在訓練期間沒有共享權重

[英]Caffe: Initializing two channels of siamese networks with the same pretrained weights , but without sharing weights during training

我正在嘗試實施“ 從樹上看森林:近紅外異構人臉識別的整體方法,CVPRW 2016 ”中描述的暹羅網絡。 該方法涉及使用相同的單通道模型的預訓練權重來初始化暹羅網絡的兩個通道。 當權重被分享時,這在caffe中是非常直接的。 但我希望以不分配權重的方式實現它(必須通過采用上述論文中提到的對比損失一起學習,但兩個通道的初始化必須相同)。 我找不到在caffe中實現它的方法。 你們中的任何人都有任何關於整潔方法或黑客的建議嗎? 謝謝。

您可以使用caffe在python中加載源和暹羅目標模型:

netSrc = caffe.Net('deploySrc.prototxt',
                'src.caffemodel',
                caffe.TEST)
netDst = caffe.Net('deployDst.prototxt',
                'dst.caffemodel',
                caffe.TEST)

然后,您可以從源到目標分配每層權重。 假設您要將圖層轉換從源復制到暹羅網絡中的convA和convB副本:

netDst.params['convA'] = netSrc.params['conv']
netDst.params['convB'] = netSrc.params['conv']

然后將結果保存到新的caffemodel:

netDst.save('dstInitialized.caffemodel')

暫無
暫無

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

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