Вы можете достичь этого, используя 2D convolution
.
- Размер
kernel
должен быть (25, 1)
, поэтому он станет полностью связным слоем. - Для применения в каждом столбце необходим шаг
(25, 1)
. - Выходной канал должен быть
30
Код:
X = tf.random_normal([25, 375])
conv = tf.transpose(tf.squeeze(tf.layers.conv2d(X[tf.newaxis, ..., tf.newaxis],
filters=30,kernel_size=(25,1), strides=(25,1),padding='SAME')), [1,0])
print(conv.get_shape().as_list())
Выход:
[30, 375]