2016-07-25 2 views
0

Я занимаюсь передачей обучения с помощью CNN. Я хочу обучить сеть с моими данными, но я получил эту ошибку при выполнении прямого прохода:Ошибка при переходе вперед с матакой

Error using CHECK (line 4) 
input data cell length must match input blob number 

Error in caffe.Net/forward (line 92) 
    CHECK(length(input_data) == length(self.inputs), ... 

Error in main (line 79) 
results= Unet.forward({data}); 

принять его медленно и решить ошибки шага за шагом у меня есть только слой данных в моей сети на данный момент. Это мой train.prototxt файл:

name: 'my_phseg_v5-train' 

force_backward: true 

layer {top: 'image' top:'anno' name: 'loaddata' type: 'HDF5Data' hdf5_data_param { source: '/home/alexandra/Documents/my-u-net/my_data.txt' batch_size: 1} include: { phase: TRAIN }} 

В MATLAB:

model = '/home/alexandra/Documents/my-u-net/my_phseg_v5-train.prototxt'; 
weights = '/home/alexandra/Documents/my-u-net/my_phseg_v5.caffemodel'; 

%defining the net: 
Unet = caffe.Net(model, weights, 'train'); % create net and load weights 

results= Unet.forward({'image'}); 

Я не очень понимаю, что я должен поставить в качестве аргумента в прямом (аргумент). Может ли кто-нибудь помочь мне в этом вопросе?

Я также заметил, что в моем Unet размер входной ячейки был 0x1 ... Я предполагаю, что это также причина, по которой она не работает.

У кого-то есть идея, как решить эту проблему?

ответ

0

Я нашел решение моей проблемы:

для входного элемента, который имел размер 0x1:

Я использовал файл deploy.prototxt вместо файла train.prototxt, который я использовал в начало. В этом файле определяется размер ввода.

Я использовал это в качестве аргумента функции вперед:

output = Unet.blobs('image').get_data(); 
results= Unet.forward({output}); 

Это данные (в моем случае изображения) в том, что должны поставить в качестве входных данных.

Смежные вопросы