Выход Matconvnet матрицы глубокой сети оценивается равномерно, а не в разных значениях?

Я пытаюсь получить карту плотности из сетевого вывода размером 20x20x1x50. Здесь 20x20 - это выходная карта, а 50 - размер пакета.

Проблема заключается в том, что значение выходного X равно 0,098 для каждой выходной матрицы.20x20. Не существует гауссовой формы, подобной карте плотности, но есть плоская схожая выходная карта 20x20x1x50. Вопрос показан на прилагаемом рисунке. Что мне здесь не хватает? Евклидова потеря для обратного распространения дается как:

  case {'l2loss'}
    res=(c-X);

    n=1;
    if isempty(dzdy) %forward
        Y = sum((res(:).^2))/numel(res);
    else
        Y_= -1.*(c-X);
        Y = 2*single (Y_ * (dzdy / n) );
    end

1 ответ

Нашел решение по адресу https://github.com/vlfeat/matconvnet/issues/313. Запросите значение conv.var(i).value, чтобы увидеть, где значение падает, и отредактируйте этот слой в сети. В моем случае мне пришлось изменить уклоны слоев конвоя

net2.params(8).value= 0,01*init_bias*ones(1, 128, 'single');%'смещения',

Другие вопросы по тегам