2017-02-20 1 views
0

я проходил через эту бумагу: CNN for Sentence ModellingTensorflow Ряд Мудрого 1D Сверток

В статье, кажется, описывает свертку по следующим направлениям:

С входом матричного я размера [д, т] и весовая матрица W размера [D, s]

свертка выполняется, как каждая строка матрицы ввода свертываются с каждой строкой матрицы веса, (в основном построчно 1D свертки). Выход будет иметь размер [d, m] с соответствующим дополнением или [d, m-s + 1] без заполнения.

Мое понимание состоит в том, что единственная разница между этим и просто выполнением 1D-свертки состоит в том, что каждая строка матрицы ввода будет иметь собственный набор весов для свертки с.

Возможно ли достичь такого сверточного слоя в Tensorflow?

ответ

1

Вы можете сделать это.

I = tf.reshape(I, [1,d,1,m]) 
W = tf.reshape(W, [1,d,s,1) 
strides = [1,stride,1,1] 
output = tf.nn.depthwise_conv2d(I, W, strides, padding='SAME') 

Я думаю, что это то, что вы ищете. Он будет применять каждую строку фильтра по входу и возвращать свернутый результат.

Смежные вопросы