Resnet思想

因为自己开始了transformer的学习,但transformer的学习还需要一点卷积里的基础知识。

这里主要还是说学习一个ResNet。

image-20211118182908604

在这张图里,五角星代表了最优位置。对于非嵌套的函数,虽然函数变大变复杂了,但其实还是在远离最优点。但是对于嵌套的函数,就可以做到越来越解决最优点,至少不会出现越来越坏这种情况。

1 x 1卷积层

import torch.nn as nn
import torch
conv1 = nn.Conv2d(3,1,1)# input channel 3, output channel 1, kernel size =1
s = torch.zeros((1, 3, 28, 28))
o = conv1(s)

# output o shape (1,1,28,28)

就说 1 * 1 卷积核实际上只是就是个全连接层,它是将channel作为特征。也就是说其他维度reshape -1 后得到的就是batch。也就是说输入实际上(batch, channel) , 那么1 * 1 卷积核的input channel 就是input dim, output channel就是 output dim。

残差块

image-20211118183224715

image-20211118200301255

左边是正常的卷积块,比如VGG里的卷积块。我并没有很深入去了解resnet,因为我只是为了了解resnet的思想对transformer的影响。

它就是一个函数 \(f(x) = g(x) + x\) 然后经过激活函数这么一个思想。

为什么resnet可以训练出1000层模型

image-20211118200649716

resnet将导数乘法变加法。

原文地址:https://www.cnblogs.com/kalicener/p/15574184.html