Caffe 中的多标签回归
Multi label regression in Caffe
我正在按照 kaggle 面部关键点竞赛从输入图像中提取 30 个面部关键点 (x,y)。
如何将 caffe 设置为 运行 回归并生成 30 维输出??。
Input: 96x96 image
Output: 30 - (30 dimensions).
如何相应地设置 caffe?。我正在使用 EUCLIDEAN_LOSS(平方和)来获得回归输出。这是一个使用 caffe 的简单逻辑回归模型,但它不起作用。外观精度层无法处理多标签输出。
I0120 17:51:27.039113 4113 net.cpp:394] accuracy <- label_fkp_1_split_1
I0120 17:51:27.039135 4113 net.cpp:356] accuracy -> accuracy
I0120 17:51:27.039158 4113 net.cpp:96] Setting up accuracy
F0120 17:51:27.039201 4113 accuracy_layer.cpp:26] Check failed: bottom[1]->channels() == 1 (30 vs. 1)
*** Check failure stack trace: ***
@ 0x7f7c2711bdaa (unknown)
@ 0x7f7c2711bce4 (unknown)
@ 0x7f7c2711b6e6 (unknown)
图层文件如下:
name: "LogReg"
layers {
name: "fkp"
top: "data"
top: "label"
type: HDF5_DATA
hdf5_data_param {
source: "train.txt"
batch_size: 100
}
include: { phase: TRAIN }
}
layers {
name: "fkp"
type: HDF5_DATA
top: "data"
top: "label"
hdf5_data_param {
source: "test.txt"
batch_size: 100
}
include: { phase: TEST }
}
layers {
name: "ip"
type: INNER_PRODUCT
bottom: "data"
top: "ip"
inner_product_param {
num_output: 30
}
}
layers {
name: "loss"
type: EUCLIDEAN_LOSS
bottom: "ip"
bottom: "label"
top: "loss"
}
layers {
name: "accuracy"
type: ACCURACY
bottom: "ip"
bottom: "label"
top: "accuracy"
include: { phase: TEST }
}
我找到了:)
我将 SOFTLAYER 替换为 EUCLIDEAN_LOSS 函数并更改了输出数量。成功了。
layers {
name: "loss"
type: EUCLIDEAN_LOSS
bottom: "ip1"
bottom: "label"
top: "loss"
}
HINGE_LOSS也是另一种选择。
我正在按照 kaggle 面部关键点竞赛从输入图像中提取 30 个面部关键点 (x,y)。
如何将 caffe 设置为 运行 回归并生成 30 维输出??。
Input: 96x96 image
Output: 30 - (30 dimensions).
如何相应地设置 caffe?。我正在使用 EUCLIDEAN_LOSS(平方和)来获得回归输出。这是一个使用 caffe 的简单逻辑回归模型,但它不起作用。外观精度层无法处理多标签输出。
I0120 17:51:27.039113 4113 net.cpp:394] accuracy <- label_fkp_1_split_1
I0120 17:51:27.039135 4113 net.cpp:356] accuracy -> accuracy
I0120 17:51:27.039158 4113 net.cpp:96] Setting up accuracy
F0120 17:51:27.039201 4113 accuracy_layer.cpp:26] Check failed: bottom[1]->channels() == 1 (30 vs. 1)
*** Check failure stack trace: ***
@ 0x7f7c2711bdaa (unknown)
@ 0x7f7c2711bce4 (unknown)
@ 0x7f7c2711b6e6 (unknown)
图层文件如下:
name: "LogReg"
layers {
name: "fkp"
top: "data"
top: "label"
type: HDF5_DATA
hdf5_data_param {
source: "train.txt"
batch_size: 100
}
include: { phase: TRAIN }
}
layers {
name: "fkp"
type: HDF5_DATA
top: "data"
top: "label"
hdf5_data_param {
source: "test.txt"
batch_size: 100
}
include: { phase: TEST }
}
layers {
name: "ip"
type: INNER_PRODUCT
bottom: "data"
top: "ip"
inner_product_param {
num_output: 30
}
}
layers {
name: "loss"
type: EUCLIDEAN_LOSS
bottom: "ip"
bottom: "label"
top: "loss"
}
layers {
name: "accuracy"
type: ACCURACY
bottom: "ip"
bottom: "label"
top: "accuracy"
include: { phase: TEST }
}
我找到了:)
我将 SOFTLAYER 替换为 EUCLIDEAN_LOSS 函数并更改了输出数量。成功了。
layers {
name: "loss"
type: EUCLIDEAN_LOSS
bottom: "ip1"
bottom: "label"
top: "loss"
}
HINGE_LOSS也是另一种选择。