为什么有全连接层的卷积网络输入图片尺寸需要固定的

一句话:

全连接层的一个神经元对应一个输入。

换句话说,

 

全连接层要求固定的输入维度。

 

数学推导:

 

  大家都知道, z=wx+b,全连接神经网络结构一旦固定,需要学习的参数w是固定的,例如 输入图像是 28*28 = 784,w 的转置= (500,784),===> 输出矩阵的shape:(500,1),如果输入图像的大小改变,但是w的大小并不会改变,因此,无法计算。

这里没有理解是因为暗含这样一份个知识点:

卷积到全连接,所有卷积会一条接一条变成一个全连接的上层 X,比如上面的  28*28 = 784,z=wx+b,如果尺寸不固定,多出来一个 785,就没法 和 w(500,784)去相乘了,有些人就要问了,那我此时改变w为(500,785) 不行嘛?也可以,但是,你训练要很多个step,甚至 epoch(pass)去更新,那,尺寸不固定,这一个step这个神经元训练到了,下一回没训练到,那就没法收敛了。

 

后续:

在小群里,鱼哥看完我文章直接说是扯淡,他说 输入必须固定,是resnet以前的结构的玩法,之后的玩法(好像也不是resnet),可以通过 1*1 卷积 升降维 fix 任何 tensor(解释,也就是通过 1*1 卷积 产生下面几篇参考里提到的 spp结构?还是他确实没搞懂?又成为了一个问题)

为何含有全连接层的网络,需要固定输入图片大小?

所以,在引入预训练模型的时候,如果要自定义输入图片的大小,则需要去掉后面的全连接层的头,附带还需要去掉连接的什么层,给大家留个课后作业,以及,自己定义的输入图片尺寸设计怎么样的 全连接层和softmax层,以及是否可以引入

spp层的方法,大家课后思索。

为何含有全连接层的网络,需要输入图片有固定尺寸?

 

提问:

我有个疑问,既然全连接层维度大小是事先预定的,那么为什么不能根据输入图像尺寸大小,去指定我们的全连接层维度?为什么要图像尺寸去匹配全连接层维度大小,而不是全连接层维度大小去匹配图像尺寸,这样不就能不固定输入了吗?

对的,可以这么理解,但是训练数据的顺序都是随机打乱的,如果你训练数据不能保证尺寸大小一样,那就不能保证同一批的数据抵达fc层的时候尺寸一样了,所以泛化出来就是所有训练集尺寸就是固定尺寸了

我之前理解的是输入的图片大小就得是固定的尺寸,其实是指同一批输入的每张图片大小必须是固定的

从两个方面将你可能更好理解点,一方面按照你的思路是没有问题的,就是我有一批图片尺寸,然后调整全连接层的大小,也能完成训练,但是这样可能会有一个问题,原先的框架可能是作者经过N多次训练出来的相对较好的参数结果;另一方面,其实这边说的固定尺寸可以这么理解,有一批输入图像,他们的尺寸必须是统一大小的,而不能像faster rcnn那样可能同时支持不同尺寸的图片。

所以,对于工业质检,一般相机的分辨率都是固定,那么,可以指定分辨率,或者,前期可以用

传统方法 找到相应的 ROI ,再裁剪 该部分(尺寸固定),再送入 深度学习模型推理。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往事如yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值