Caffe — выполнение прямого прохода с несколькими входными каплями

Ниже приведены входные слои моей доработанной модели:

layer {
  type: "HDF5Data"
  name: "data"
  top: "Meta" 
  hdf5_data_param {
    source: "/path/to/train.txt"
    batch_size: 50
  }
  include { phase: TRAIN }
}
layer {
  name: "data"
  type: "ImageData"
  top: "X"
  top: "Labels"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: true
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
  }
  image_data_param {
    source: "/path/to/train.txt"
    batch_size: 50
    new_height: 256
    new_width: 256
  }
}
layer {
  type: "HDF5Data"
  name: "data"
  top: "Meta" 
  hdf5_data_param {
    source: "/path/to/val.txt"
    batch_size: 50
  }
  include { phase: TEST }
}
layer {
  name: "data"
  type: "ImageData"
  top: "X"
  top: "Labels"
  include {
    phase: TEST
  }
  transform_param {
    mirror: false
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
  }
  image_data_param {
    source: "/path/to/val.txt"
    batch_size: 50
    new_height: 256
    new_width: 256
  }
}

Как вы можете видеть, у него есть один входной слой imagedata и 1 входной слой hdf5, если бы был только 1 тип слоя, скажем, imagedata, я мог бы сделать:

input_data = {prepare_images(im)}; # dimension 227*227*3*10

а потом scores = caffe('forward',input_data); Но здесь я должен дать два типа входных данных, как я могу это сделать? Пожалуйста помоги!


person Deven    schedule 16.01.2016    source источник
comment
разве это не просто input_data={prepare_images(im), meta}? добавить еще одну ячейку, соответствующую второму входу?   -  person Shai    schedule 17.01.2016
comment
Matlab вылетает, когда я это делаю   -  person Deven    schedule 17.01.2016


Ответы (1)


Мне пришлось проверить matcaffe.cpp (и перекомпилировать с помощью make matcaffe) и распечатать контрольные переменные для условия «Недопустимый размер ввода», которое я терпел неудачу, чтобы получить представление о переносе input_data, который работает.

input_data = {prepare_images(im),prepare_other_data()};
scores = caffe('forward', input_data');

Таким образом, транспонирование сработало для меня.

person Deven    schedule 01.03.2016