当前位置:   article > 正文

为什么有全连接层的卷积网络输入图片尺寸需要固定的_深度学习全连接层和图像大小有关

深度学习全连接层和图像大小有关

一句话:

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

换句话说,

 

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

 

数学推导:

 

  大家都知道, 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 ,再裁剪 该部分(尺寸固定),再送入 深度学习模型推理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/520604
推荐阅读
相关标签
  

闽ICP备14008679号