tensorflow版本1.5.0rc1 python版本:3.5
将矩形图像重塑为[height,width]
时
使用tf.reshape(x,[-1,x,y,1])
例如。 tf.reshape(x,[ - 1,14,56,1])运行conv2d返回: InvalidArgumentError(参见上面的回溯):重塑的输入是a 张量为358400,但请求的形状需要倍数 3136 [[节点:Reshape_1 =重塑[T = DT_FLOAT,Tshape = DT_INT32, _device =“/ job:localhost / replica:0 / task:0 / device:GPU:0”](MaxPool_1,Reshape_1 / shape)]]
其中3136是56的平方。 张量将重塑视为56x56而不是14 * 56矩阵。
有没有办法摆脱它并将我的CNN设置为非方形图像?
由于
答案 0 :(得分:0)
我不完全同意在破坏相邻像素之间的关系时重塑矩形图片。相反,您有几种方法可以在非二次图像上应用CNN:
1。)使用填充。在预处理期间,您可以填充像素以获得二次图像。通过这个你可以应用二次滤波器。
2.)使用该图像的不同二次窗口进行训练。例如,创建一个二次窗口并在图像上运行它以获得许多子图片。
3。)您可以对图片的尺寸使用不同的步幅。
4。)你可以按照所需的方向拉伸图片,虽然我不确定这会如何影响以后的性能。我只会尝试这个作为最后的解决方案。