我正在尝试将形状为(n_samples,n_channels,height,width)
的数据传递给涉及Conv2D作为其第一层的模型。 n_channels
的长度为128(基本上,我试图将不同的时间样本传递到不同的通道中),因此长度也可以增加或减少。当我尝试仅通过张量作为输入时,它抱怨:
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来完成任务。
答案 0 :(得分:0)
我对tensorflow不太确定,但是在Pytorch中,可以用.squeeze()之类的东西来消除最后一个维度,大小会变成[60,128,9,9],那应该就不错了。< /p>