Как различить размер пакета и глубину ядра для обучения на основе конвективной нейронной сети? - PullRequest
0 голосов
/ 13 октября 2019

Я использую графический процессор для обучения сверточной глубокой нейронной сети. Размер пакета путается из-за глубины ядра.

Я использую Matlab 2019a. У меня есть функция getBatch. Изображения (150x150) используются для оценки плотности в них. Изображения меток также имеют одинаковые размеры (150,150). Ожидается, что нейронная сеть оценит плотность во входных изображениях.

opts.batchSize =64;

function [im1,im2,labels1, labels2] = getBatch(imdb, batch,useGpu)
im1 = imdb.images.data_src1(:,:,:,batch) ;
labels1 = imdb.images.labels1(:,:,:,batch) ;
...
 if useGpu > 0
    im1 = gpuArray(im1) ;        im2 = gpuArray(im2) ;
        labels1=gpuArray(labels1) ;  labels2=gpuArray(labels2) ;
    end
%First layer of the network
net1.addLayer('conv1', dagnn.Conv('size', [11 11 3 4], 'hasBias', true, 'stride', [1, 1], 'pad', [0 0 0 0]), {'input1'}, {'conv1'},  {'conv1f'  'conv1b'});
%where 'input1' is 
function inputs = getBatchDagNN(imdb, batch, useGpu)
% -------------------------------------------------------------------------

[im1,im2,labels1, labels2] = getBatch(imdb, batch,useGpu);

if nargout > 0
  inputs = {'input1', im1,'input2', im2, 'label1', labels1};%, 'label2', labels2} ;
end

Свертка не происходит, потому что ошибка «ДАННЫЕ и ФИЛЬТРЫ не имеют совместимых форматов». Фильтр 150X150X3X64, который он видит, в то время как я ожидаю, что он имеет 150X150X3X4. Пожалуйста, помогите мне понять, что не так!

...