[英]How to make Lasagne layers nontrainable
我想使用預訓練的神經網絡,並根據我的特定需求對其進行微調。 我想為此使用 Python 和 Lasagne 框架。 在:
我找到了一個關於如何對特定圖像使用預訓練網絡的示例。 我的問題是我想使用上面鏈接中描述的網絡作為起點,並為其添加最后一層,使其實現我需要的二級分類器。 因此,我想保持網絡中的所有層凍結,並只允許在我最后添加的層中進行訓練。
顯然有一種方法可以表明千層面中的圖層應該是“不可訓練的”,但我在網上沒有找到如何做到這一點的例子。
對此的任何想法將不勝感激。
將您想要用 lr 凍結的那些層設置為 0,並且只將您想要微調 lr 的那些層設置為非零。 目前還沒有在線示例。 但你應該檢查這個線程https://groups.google.com/forum/#!topic/lasagne-users/2z-6RrgiHkE
從要保持凍結的層的所有參數中刪除trainable
標簽:
def freeze_layer(layer):
for param in layer.params.values():
param.remove('trainable')
要將所有網絡凍結到某個層,您可以簡單地迭代其較低層:
from lasagne.layers import get_all_layers
def freeze_net(net):
layers = get_all_layers(net)
for l in layers:
freeze_layer(l)
代碼未經測試。 有關更多信息,請參閱此討論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.