我在python中使用caffe。所以这是我的blob形状:
data 3072 3.07e+03 (1, 3, 32, 32)
conv2d1 12544 1.25e+04 (1, 16, 28, 28)
maxPool1 3136 3.14e+03 (1, 16, 14, 14)
fc1 10 1.00e+01 (1, 10)
ampl 10 1.00e+01 (1, 10)
-------------------------------- params: name,w,(b)
conv2d1 1200 1.20e+03 (16, 3, 5, 5)
fc1 31360 3.14e+04 (10, 3136)
这是我在proto.txt文件中的最后两层:
...
layer {
name: "ampl"
type: "Softmax"
bottom: "fc1"
top: "ampl"
softmax_param {
axis: 1
}
}
layer {
name: "loss"
type: "EuclideanLoss"
bottom: "ampl"
bottom: "label"
top: "loss"
}
我收到此错误:
euclidean_loss_layer.cpp:12] Check failed: bottom[0]->count(1) == bottom[1]->count(1) (10 vs. 1) Inputs must have the same dimension.
答案 0 :(得分:1)
你的错误非常自我解释:
Inputs must have the same dimension
您正在尝试在"ampl"
和"label"
之间计算"EuclideanLoss"
。为此,必须让"ampl"
和"label"
成为具有相同数量元素的blob(又名count()
)。但是,似乎"ampl"
有10个元素,"label"
只有一个元素。