张量流:CNN用于非方形图像



tensorflow version 1.5.0rc1蟒蛇版本:3.5

将矩形图像的形状调整为[height,width]时通过使用tf.reshape(x,[-1,x,y,1])

例如,tf.reshape(x,[-1,14,56,1]( run conv2d 返回: InvalidArgumentError (参见上文的回溯(:要重塑的输入是一个 具有 358400 个值的张量,但请求的形状需要倍数 的 3136 [[节点: Reshape_1 = 重塑[T=DT_FLOAT, 形状=DT_INT32, _device="/job:localhost/replica:0/task:0/device:GPU:0"](MaxPool_1, Reshape_1/shape(]]

其中 3136 是 56 的平方。张量将整形视为 56x56 而不是 14*56 矩阵。

有没有办法摆脱它并将我的 CNN 设置为非方形图像?

谢谢

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

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

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

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

4.(你可以把图片拉伸到需要的方向,尽管我不确定这会如何影响以后的性能。我只会尝试将其作为最后的解决方案。

最新更新