Caffe: ошибка евклидовой потери: входы должны иметь одинаковые размеры - PullRequest
0 голосов
/ 10 июня 2018

Я использую caffe в python.так что это моя форма 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)

и вот мои последние 2 слоя в файле 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.

1 Ответ

0 голосов
/ 11 июня 2018

Ваша ошибка совершенно очевидна:

Inputs must have the same dimension

Вы пытаетесь вычислить "EuclideanLoss" между "ampl" и "label".Для этого вы должны иметь "ampl" и "label" быть BLOB-объектами с одинаковым количеством элементов (иначе говоря, count()).Однако, похоже, что "ampl" имеет 10 элементов, "label" имеет только один элемент.

...