tensorflow版本1.5.0rc1 python版本:3.5
使用 tf.reshape(x,[-1,x,y,1])
将矩形图像重塑为 [height,width]
时
例如 . tf.reshape(x,[ - 1,14,56,1])运行conv2d返回:InvalidArgumentError(参见上面的回溯):重塑的输入是一个具有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设置为非方形图像?
谢谢
1 回答
当你破坏相邻像素之间的关系时,我并不完全赞同重塑矩形图片 . 相反,您有几个选项可以在非二次图像上应用CNN:
1.)使用填充 . 在预处理期间,您可以填充像素以获得二次图像 . 通过此,您可以应用二次滤波器 .
2.)使用该图像的不同二次窗口进行训练 . 例如,创建一个二次窗口并在图像上运行它以获得许多子图像 .
3.)您可以对图片的尺寸使用不同的步幅 .
4.)你可以按照所需的方向拉伸图片,虽然我不确定这会如何影响以后的性能 . 我只会尝试这个作为最后的解决方案 .