我正在尝试在TensorFlow中编写this论文的实现,我遇到了一些障碍。在我的池层中,我必须将所有内容连接在一起。这是我使用的代码:
pooled_outputs
当我运行此代码时,它会打印出[<tf.Tensor 'conv-maxpool-3/pool:0' shape=(?, 94, 1, 128) dtype=float32>, <tf.Tensor 'conv-maxpool-4/pool:0' shape=(?, 51, 1, 128) dtype=float32>, <tf.Tensor 'conv-maxpool-5/pool:0' shape=(?, 237, 1, 128) dtype=float32>]
:
pooled_outputs = [tf.reshape(out, ["?", 94, 1, self.max_length]) for out in pooled_outputs]
我最初在没有ValueError: Dimension 1 in both shapes must be equal, but are 51 and 237
行的情况下尝试了此代码,我收到了此错误:
TypeError: Expected binary or unicode string, got 94
当我在重塑行中添加时,我收到了这个错误:
response.Concat
我知道的第二个错误是因为我通过了&#34;?&#34;对于新尺寸,我认为第一个错误是因为张量不是相同的尺寸。 我怎样才能正确填充这些张贴,以便我可以毫无问题地连接它们?
答案 0 :(得分:1)
您可以将-1
作为形状的一个组件传递给tf.reshape
方法;它将从张量的形状自动推断出来,因此总大小将是相同的。
因此,尝试将问题行更改为
pooled_outputs = [tf.reshape(out, [-1, 94, 1, self.max_length]) for out in pooled_outputs]
有关详细信息,请参阅documentation