Я читал о сверточных нейронных сетях от here. Затем я начал играть с torch7. У меня путаница со сверточным слоем CNN.Устранение неполадок Сверторная нейронная сеть
Из учебника,
The neurons in a layer will only be connected to a small region of the layer before it, instead of all of the neurons in a fully-connected manner.
For example, suppose that the input volume has size [32x32x3], (e.g. an RGB CIFAR-10 image). If the receptive field is of size 5x5, then each neuron in the Conv Layer will have weights to a [5x5x3] region in the input volume, for a total of 5*5*3 = 75 weights.
, если входной слой [32x32x3], CONV layer will compute the output of neurons that are connected to local regions in the input, each computing a dot product between their weights and the region they are connected to in the input volume. This may result in volume such as [32x32x12].
Я начал играть с тем, что слой CONV мог бы сделать с изображением. Я сделал это в torch7. Вот моя реализация,
require 'image'
require 'nn'
i = image.lena()
model = nn.Sequential()
model:add(nn.SpatialConvolutionMM(3, 10, 5, 5)) --depth = 3, #output layer = 10, filter = 5x5
res = model:forward(i)
itorch.image(res)
print(#i)
print(#res)
3
512
512
[torch.LongStorage of size 3]
10
508
508
[torch.LongStorage of size 3]
Теперь позволяет увидеть структуру CNN
Итак, мои вопросы,
Вопрос 1
Является ли свертка выполненным так: скажем, возьмем изображение 32x32x3. И есть фильтр 5x5. Затем фильтр 5x5 пройдет через все изображение 32x32 и произведет свернутые изображения? Хорошо, так что скользящий фильтр 5x5 по всему изображению, мы получаем одно изображение, если есть 10 уровней вывода, мы получаем 10 изображений (как вы видите на выходе). Как мы их получаем? (См изображения для уточнения, если это необходимо)
Вопрос 2
Что такое числа нейронов в слое ко? Это количество выходных уровней? В коде, который я написал выше, model:add(nn.SpatialConvolutionMM(3, 10, 5, 5))
. Это 10? (количество выходных уровней?)
Если это так, то номер точки 2 не имеет никакого смысла. В соответствии с этим If the receptive field is of size 5x5, then each neuron in the Conv Layer will have weights to a [5x5x3] region in the input volume, for a total of 5*5*3 = 75 weights.
Так какой будет вес здесь? В этом я очень смущен. В модели, определенной в факеле, нет веса. Итак, как вес играет здесь роль?
Может кто-нибудь объяснить, что происходит?