Я использую графический процессор для обучения сверточной глубокой нейронной сети. Размер пакета путается из-за глубины ядра.
Я использую 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. Пожалуйста, помогите мне понять, что не так!