降维
来源:6-11 10monkeys模型微调
慕九州7272337
2022-08-18
滑到最底下面有2个图,从上到下分别为图1和图2:
之前实战过程中您讲到:
在连接全连接层之前,先做一个flatten展平,如下图1所示::
在本节6-11节中,您讲到:
对于Resnet50来说,它最后倒数第2层的输出是一个卷积层的输出,所以它是一个三维矩阵,而不是一个向量。对于三维矩阵来说,我们并不能直接把全连接层给加上去,所以我们需要考虑做一些处理
一个可能的考虑就是去做pooling,把它图像的那2个维度给消掉;
还有另外一个就是我可以直接去展平,在这个时候pooling就是None就是不做处理
在本次实战,就设成Averagepooling
那么请问以下问题:
1.****‘’一个可能的考虑就是去做pooling,把图像2维度消掉—方法1
还有另外一个就是我可以直接去展平,pooling就是None就是不做处理‘’—方法2
针对这个描述,请问本节课 用的第几种方法去做处理的呢?
2.“一个可能的考虑就是去做pooling,把它图像的那2个维度给消掉“
针对方法1,那个维度‘’,是不是输出特征图的长和宽这2个维度,然后保留输出通道数这个维度 。比如 卷积层的输出shape[28,28,32] 32就是输出通道数,也就等于filter的数目,那我就把28,28这2个维度给消掉?只保留32这个维度?
针对方法1去做pooling消掉2个维度,是怎么用Pooling消掉的呢?
3.**针对方法2,为什么pooling是None不做处理可以直接展平呢?怎么实现的?pooling不做操作的话,我理解为pooling之前的卷积层就直接输出了,后面不用池化了,因为pooling都已经是None了么,卷积层输出还是三维矩阵,怎么会展平变为一维的呢?
4.‘’在本次实战呢,就设成Averagepooling‘’您总共讲了2种方法,肯定不是方法2,那假设是方法1,为什么Averagepooling‘就能消掉2个维度,降维1维,原理是什么呢?
5.为什么不像图1一样,在resnet50的后面加一个flatten层实现展平操作呢?
展平操作除了flatten之外还有其他方法么?
6.如图2所示:Resnet50总共有50层,
keras.applications.Resnet()里面的参数pooling=‘avg’,那么这50层中的所有的pooling层
都做了平均池化,如果您用的方法2(滑到上面提到)**使得Resnet50本身的最后一层的前一层卷积输出降维到1维,然后去连接的自己写的全连接层。
那么Resnet50的网络结构中,每个avgpooling层之前的卷积层,在经过了pooling之后都被降到了1维,然后再进行下一层卷积,卷积层的输出都降到1维了,特征图还存在么?特征图起码有长和宽2个维度吧还有通道这个通道维度呢?您把整个resnet50的所有pooling都avg了呢
1回答
-
这个去看看代码吧。学到这里你应该能通过代码知道用的啥。
对,如果最后的输出是[28, 28, 32], 那么可以用[28, 28]的pooling吧它变成[1, 1, 32], 然后再reshape就可以了
如上
如上,不用反复找老师确认,可以自己写代码测试一下。
可以用flatten啊。除了flatt以外,还可以reshape下。
参考文档,这个参数只负责最后一层:https://www.tensorflow.org/api_docs/python/tf/keras/applications/resnet50/ResNet50
022022-08-24
相似问题