不同输入大小的Tensorflow CNN

2024-06-13 22:44:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作用于图像回归的conv网络

如下图所示,一个图像[224x224]有一个GT值{x}

很容易用[224 x 224]图像制作train[224 x 224]和valid/test

然而,我想应用CNN的不同图像大小

例如,[224x229]图像,我想“一次”得到5个回归值

简单地说,我可以通过滑动窗口[224x224]x5次来实现这一点,但显然太慢了

我认为对不同的图像大小使用conv是可能的。但FCL并非如此

如果我将图像大小更改为[455 x 256]

lhs shape= [4608,1024] rhs shape= [2048,1024]

发生错误。有办法处理吗

enter image description here


Tags: test图像gt网络错误traincnnshape
1条回答
网友
1楼 · 发布于 2024-06-13 22:44:53

完全连接的层具有固定大小的输入。因此,更改输入大小将导致错误的大小错误

解决此问题并允许不同图像大小的一种方法是使用fully convolutional network

简单数字示例:

例如,假设conv层的输出大小为16X16,您可以创建一个“分类器层”,大小为4x4,步幅为4,将为构成16X16特征贴图的4个4x4正方形中的每一个输出一个值。此类过滤器的大小为4x4xn_dim,在您的情况下,n_dim为5,最终输出的大小为4x4x5,对应于每个4x4平方的5个输出(每个回归值一个)

您会注意到,您可以使用最后一个conv过滤器的形状来获得最终输出的不同大小,对应于输入图像的不同部分,但实际上,可以查看所有图像

你可以为自己的例子算出数字


您可能想了解semantic segmentaion的基本方法

另见basic fully conv nets

相关问题 更多 >