如何在TensowFlow中对1维ConvNet(conv1d)执行最大池化?

iba*_*rdo 6 machine-learning tensorflow

我正在训练文本卷积神经网络(在角色级别),我想做最大化池.tf.nn.max_pool期望等级4 Tensor,但是1-d convnets在tensorflow中是等级3([批次,宽度,深度]),所以当我将conv1d的输出传递给max pool函数时,这是错误:

ValueError: Shape (1, 144, 512) must have rank 4
Run Code Online (Sandbox Code Playgroud)

我对一般的张量流和深度学习框架不熟悉,并希望就这里的最佳实践提出建议,因为我可以想象有多种解决方法.如何在1-d情况下执行max-pooling?

谢谢.

Ste*_*ven 6

一个快速的方法是添加一个额外的单一维度,即制作形状(1,1,144,512),从那里你可以用tf.squeeze将其缩小.

我对其他方法感到好奇.

  • 这正是我所做的.Tensorflow文档明确指出conv1d函数只是在引擎盖下进行转换(正如你所说的那样添加了单例维度).如果没有等效的池功能,我不确定为什么他们添加了conv1d函数. (2认同)