【发布时间】:2016-12-02 08:27:59
【问题描述】:
我正在尝试制作一个 CNN 模型,该模型采用可变大小的输入(句子矩阵)并为后续的全连接层 (similar to this paper) 生成固定大小的输出。
我正在尝试为最大池化层实现动态内核大小,因此我需要在运行时输入的形状来实现这一点。
input = tf.placeholder(tf.float32)
# convolution layer here ....
tf.nn.max_pool(convolution_output, ksize=[1, s, 1, 1],
strides=[1, 1, 1, 1], padding='VALID')
ksize=[1, s, 1, 1] 中的s 应该从输入形状中推断出来。
但是,我找不到使用 Tensorflow 的方法。
有人知道怎么做吗?
【问题讨论】:
-
这听起来与他们在这里所做的相似:(arxiv.org/abs/1412.6071)。但不幸的是,tensorflow 尚不直接支持这一点 (github.com/tensorflow/tensorflow/issues/2953)。添加后,您想要做的可能只是一个扩展。
-
也许
tf.reduce_max可以在这种情况下工作?不确定这是否适用于您正在实施的论文,但至少它适用于具有可变输入大小的简单 CNN。 -
tf.reduce_max 完成了我想做的工作。我想根据批量大小进行池化。 (虽然不是每个句子)谢谢!
标签: tensorflow