Репликация нескольких меток в Caffe

Я извлекаю 30 лицевых ключевых точек (x, y) из входного изображения в соответствии с соревнованием на лицевые точки.

Как настроить caffe для запуска регрессии и произвести 30-мерный выход?.

Input: 96x96 image
Output: 30 - (30 dimensions).

Как настроить caffe соответственно?. Я использую EUCLIDEAN_LOSS (сумма квадратов), чтобы получить регрессированный выход. Вот простая модель логистического регресса, использующая кофе, но она не работает. Уровень точности поиска не может обрабатывать вывод с несколькими метками.

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 }
}

Ответ 1

я нашел это:)

Я заменил функцию SOFTLAYER на EUCLIDEAN_LOSS и изменил количество выходов. Это сработало.

layers {
  name: "loss"
  type: EUCLIDEAN_LOSS
  bottom: "ip1"
  bottom: "label"
  top: "loss"
}

HINGE_LOSS - еще один вариант.