首页 文章

tensorflow:非方形图像的CNN

提问于
浏览
0

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 回答

  • 0

    当你破坏相邻像素之间的关系时,我并不完全赞同重塑矩形图片 . 相反,您有几个选项可以在非二次图像上应用CNN:

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

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

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

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

相关问题