Форма вывода Tensorflow tf.layers.conv3d - PullRequest
0 голосов
/ 11 февраля 2019

У меня вопрос по поводу tf.layers.conv3d.Если я правильно понял, требуется ввод формы

(Пакет х глубина х высота х ширина х каналов)

, где каналы должны быть только один;и с учетом фильтра (глубина x высота x ширина) он создает #filters различные фильтры одинаковой формы для создания выходных каналов #filters и свертывает их с входными данными для получения выходных данных формы

(Batch x out_depth)x out_height x out_width x num_filters)

Прежде всего, я сейчас прав?Вопрос в том, что мне кажется, что этот слой не подчиняется закону, связывающему формы ввода, вывода, фильтрации и шагов сверточных слоев, которые должны быть:

(W-F + 2P) / S +1

Как описано здесь .Вместо этого ширина и высота выходных данных всегда совпадают с параметрами ввода.Что происходит?Спасибо за помощь!

1 Ответ

0 голосов
/ 11 февраля 2019
kinda true but if input shape, filter shape and strides:
[Batch, depth, height, width, channels]
[filter_depth,filter_height,filter_width,in_channels,out_channels]
[1,s1,s2,s3,1]

output shape
[Batch,int(depth/s1),int(height/s2),int(width/s3),out_channels]

tf.layers.conv3d является частным случаем tf.layers.convolution

для понимания алгоритма заполнения: https://www.tensorflow.org/api_guides/python/nn#Convolution

для понимания операции свертки: https://www.tensorflow.org/api_docs/python/tf/nn/convolution

...