张量流:非方形图像的CNN

时间:2018-04-18 07:32:43

标签: python tensorflow

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设置为非方形图像?

由于

1 个答案:

答案 0 :(得分:0)

我不完全同意在破坏相邻像素之间的关系时重塑矩形图片。相反,您有几种方法可以在非二次图像上应用CNN:

1。)使用填充。在预处理期间,您可以填充像素以获得二次图像。通过这个你可以应用二次滤波器。

2.)使用该图像的不同二次窗口进行训练。例如,创建一个二次窗口并在图像上运行它以获得许多子图片。

3。)您可以对图片的尺寸使用不同的步幅。

4。)你可以按照所需的方向拉伸图片,虽然我不确定这会如何影响以后的性能。我只会尝试这个作为最后的解决方案。