[英]Why are input channels for Conv2D limited to 1,3,4 with the tensor dimension limited to 4-D in tensorflow?
我正在尝试将形状(n_samples,n_channels,height,width)
的数据传递给我的 model,其中将 Conv2D 作为其第一层。 这里n_channels
的长度为 128(基本上,我试图将不同的时间样本传递到不同的通道),所以长度也可以 go 向上或向下。 当我尝试将张量简单地作为输入传递时,它抱怨说:
InvalidArgumentError: Tensor must be 4-D with last dim 1, 3, or 4, not [60,128,9,9,1]
我试图将形状更改为[60,9,9,128]
之类的东西,但它给出了同样的错误
我试图通过网络一次传递一堆图像。 我认为将它们集中在通道上会很聪明(因为隐藏的卷积层可以接受多通道输入)。 但是,不知何故,第一个 conv 层似乎无法接受这种张量形状。
我不明白,为什么在 tensorflow 中做出这样的安排,只能通过 1,3 或 4 个通道,以及如何解决它。
PS:自从 tensorflow 2.2 发布以来,我使用 tensorflow.compat.v1 来完成我的任务。
我不确定tensorflow,但是在Pytorch中,可以使用.squeeze()之类的东西来消除最后一个维度,大小会变成[60,128,9,9],那么应该不错。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.