這是關於如何在訓練之前將現有權重添加到模型的問題here的擴展。更改caffe中的最後一層
我想使用現有的權重,但我的最終圖層輸出50而不是1000(因爲網絡被訓練爲分類1000項)。從前一篇文章中,通過更改輸出圖層的名稱,我可以添加權重。但後來我意識到還有其他層依賴於最後一層。下面是從VGG網絡的一個片段:
layer {
name: "loss3/classifier"
type: "InnerProduct"
bottom: "pool5/7x7_s1"
top: "loss3/classifier"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
inner_product_param {
num_output: 50
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "loss3/loss3"
type: "SoftmaxWithLoss"
bottom: "loss3/classifier"
bottom: "label"
top: "loss3/loss3"
loss_weight: 1
}
layer {
name: "loss3/top-1"
type: "Accuracy"
bottom: "loss3/classifier"
bottom: "label"
top: "loss3/top-1"
include {
phase: TEST
}
}
layer {
name: "loss3/top-5"
type: "Accuracy"
bottom: "loss3/classifier"
bottom: "label"
top: "loss3/top-5"
include {
phase: TEST
}
accuracy_param {
top_k: 5
}
}
我的問題是:
究竟什麼是底部和頂部的論點?
我是否需要在後續兩層中更改「loss3/classifier」的名稱?
啊是的。你是對的。這是googlenet。我對這樣的基本問題表示歉意。我一定會瀏覽教程。謝謝! – MoneyBall