深度学习--图像分类!
深度学习之图像分类领域!2024.11.5-2024.11.12
卷积神经网络
深入浅出理解深度可分离卷积
包含标准卷积、逐深度卷积、逐点卷积、可分离卷积
进行图像特征提取。拥有局部感知机制,权值共享(区别于全连接神经网络,极大减少了参数量)
卷积操作中常用参数: N=(W-F+2P)/S+1
池化!
反向传播,权值更新
链式求导法则
lenet
pytorch中的tensor向量是 [n,c,h,w]
Alexnet
使用relu激活函数
使用dropout避免过拟合
卷积核relu激活函数是一起的 1. 为什么要用ReLU激活函数
由于sigmoid函数在输入远离中心点时导数会很小,会出现梯度消失的现象。使用ReLU激活函数时则不会出现梯度消失的现象。
但是当输入为负数时ReLU函数会死掉,拐点不可导。所以需要做特殊处理。

VGG
适用多个小卷积核来替代一个大的卷积核,保证感受野一样,但是有效减少了参数量
不同卷积核的卷积感受野不一样,提取到的信息感受野就不一样
GoolgLenet
激活函数的总结
其中relu函数虽然好,但是不适用于RNNs的神经网络,要注意!
使用inception中的并行结构,可以提取不同尺寸的特征,之后按深度进行拼接!
为什么有时候是nn.relu(),有时候是F.ReLU() 效果是一样的,只是pytorch中的两套封装方法,一个类封装,一个函数封装
卷积操作,输出的特征矩阵的大小,默认是向下取整的,如果要向上取整,就需要ceil_mode=True这个参数
init函数中是定义,具体实现实在forward函数中
net.train() self.training=True
net.eval() self.training=False
辅助分类器的作用:为了避免深度增加而导致的梯度消失,训练过程中用来优化网络参数的,训练阶段优化好了,测试阶段就不用了
辅助分类器只在训练过程中起作用,有输出,在验证测试阶段,辅助分类器不起作用,
最后的loss是三个分类器的loss之和




Resnet
一个up的笔记
内部记录有如何加载预训练好的模型进行继续训练
网络深度越深—》梯度消失、爆炸,退化问题–》模型误差越大?
对于梯度消失、爆炸 通常是对数据进行标准化,权重初始化,BN
利用残差解决了退化问题,实现网络越深,模型越好,误差越小
残差块中的实现和虚线部分
主分支和测分支的输出特征矩阵的shape必须一致



主分支和测分支的输出特征矩阵的shape必须一致
18和34层的网络结构中conv2_X不涉及虚线残差,50层以上的conv2_1涉及到了虚线残差层,但只是改变了特征矩阵的深度,高宽不变。
conv3,4,5的卷积的第一层都有虚线残差结构, 这个结构的侧分枝改变了特征矩阵的深度和大小,为了主分支和测分支的输出特征矩阵的shape必须一致,以便进行融合。
BatchNormalizition
让feature map满足某一分布规律,理论上是指整个训练样本集所对应feature map的数据要满足分布规律,保证每一层操作都满足一定的分布规律?
(1)训练时要将traning参数设置为True,在验证时将trainning参数设置为False。在pytorch中可通过创建模型的model.train()和model.eval()方法控制。
(2)batch size尽可能设置大点,设置小后表现可能很糟糕,设置的越大求的均值和方差越接近整个训练集的均值和方差。
(3)建议将bn层放在卷积层(Conv)和激活层(例如Relu)之间,且卷积层不要使用偏置bias,因为没有用,参考下图推理,即使使用了偏置bias求出的结果也是一样的
迁移学习
常见的迁移学习方式:
1.载入权重后训练所有参数
2.载入权重后只训练最后几层参数
3.载入权重后在原网络基础上再添加一层全连接层,仅训练最后一个全连接层
transformer
一些编程经验
展平操作
torch.flatten(x,start_dim=1) 从第二维开始展开
x.view(-1,abc) 确保总元素数量不变
x.flatten() 在所有维度展开
new_tensor = tensor.view(*shape) shape 是一个整数元组,用于指定新的张量形状
对于numpy和panda的一些东西,不看就忘了
形参前带星号

pytorch中nn.Conv1d和nn.Conv2d的区别!
Conv1d顾名思义只对一个维度操作,在文本中只需要从上往下进行卷积扫描即可。
input的的维度是[batch_size, max_len, embedding_dim],在开始Conv1d前需要将max_len换到最后一个维度用来做一维卷积。卷积后的结果[batch_size, out_channels, n+2p-f/s+1],

就是官方提供已经训练好的参数权重文件,加载到自己网络上再继续训练就行。
padding作用
在卷积操作中,padding可以避免特征矩阵越来越小,可以充分提取到边缘信息
p=(f-1)/2
卷积核大小为3,步长为1,padding为1的时候,卷积得到的特征矩阵大小和原图不变
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)