我正在尝试创建一个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')
{/ 1}}中的{p> s
应该从输入形状推断出来。
但是,我无法通过Tensorflow找到方法。
任何人都知道这样做的方法吗?
答案 0 :(得分:4)
我知道这是一个旧线程,但对于正在寻找解决方案的人来说。它已在tensorflow 1.4.0
中实施tf.nn.max_pool()现在将1d张量作为输入,而不是旧版本中的int列表。因此,您可以使用占位符作为ksize的参数。
答案 1 :(得分:2)
我没有找到在Tensorflow中执行此操作的方法,并且必须在theano中重新实现我的模型并使用其他解决方案:Dynamic KMax Pooling。