Billie使劲学
这个作者很懒,什么都没留下…
展开
-
使用hook提取模型的特征图
若打印结果是下面这样的,需要找到model的表示网络层的属性,如上面print(dir(model)显示的,需print(dir(model.model)才能打印网络层,这主要根据网络包装情况判断。这两个输出要区别好,name是后面需要判断是否是目标网路层,print的是模型某一块网络结构,写这两部分是为了展示这两个索引方式的不同。以上面的网络层输出为例,括号中就是网络层的名字,然后再根据缩进来判断网络层的层级关系。运行下面代码可以查看model中所有的网络层名字,然后选择自己需要的名字就好了。原创 2023-09-20 14:36:52 · 146 阅读 · 0 评论 -
cuda11.0版本的pytorch安装教程
目录官网安装添加源安装安装pytorch测试是否安装成功判断是否是cuda版本官网安装pytorch官网:pytorch官网复制这一段命令,改成自己需要的版本。或者点击下面的,previous version去找与自己cuda版本适配的torch我的cuda是11.0的,torch选择的是1.7.0的版本,直接复制命令安装即可# CUDA 11.0conda install pytorch==1.7.0 torchvision==0.8.0 torch原创 2022-03-24 11:11:01 · 25170 阅读 · 0 评论 -
BN的作用原理(BN、LN、IN和GN)
目录为什么引入BN?BN的作用原理BN的作用 BN的不足BN、LN、IN和GN之间的区别参考为加速网络的训练,在图像预处理时,我们就后对图像进行标准化操作,即image normalization,是的每张图片都能服从u均值σ标准差的分布。但是当图片输如到神经网络后,每经过一次卷积,数据就不会再服从该分布,这种现象叫做ICS(Internal Covariate Shift,内部协变量偏移),该现象会使输入分布变化,导致模型的训练困难,对深度神经网络影响极大,如左图所示,数据分布不统一,深层网络就需要去适应原创 2022-06-28 13:16:48 · 2243 阅读 · 0 评论 -
常用的激活函数(Sigmoid、Tanh、ReLU等)
目录一、激活函数定义二、梯度消失与梯度爆炸 1.什么是梯度消失与梯度爆炸2.梯度消失的根本原因3.如何解决梯度消失与梯度爆炸问题 三、常用激活函数1.Sigmoid2.Tanh3.ReLU4.Leaky ReLU5.ELU6.softmax7.Swish 激活函数 (Activation functions) 对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到神经网络中。在下图中,输入的 inputs 通过加权,求和后,还被作用了一个函数f,这原创 2022-06-29 15:34:59 · 20550 阅读 · 0 评论 -
实际工作中的高级技术(训练加速、推理加速、深度学习自适应、对抗神经网络)
针对训练数据过于庞大的对策,多GPU训练,加速生产模型的速度,可以认为是离线操作。我们主要看一下基于数据的并行,下面列出了三种并行方式①Model Average(模型平均)②SSGD(同步随机梯度下降)③。.........原创 2022-08-03 20:08:05 · 1437 阅读 · 11 评论 -
CNN,RNN,LSTM,GRU的前后向传播算法(梯度是怎么更新的)
为什么要计算梯度?直观的讲,我们的网络通过这样的方式进行学习计算,最终输出的结果y为网络根据标签学习来的,网络的第一次前向传播相当于自学,随意学习一种概率分布,但是我们想让预测的结果更加接近“答案”,那我们就需要计算预测与标签之间差距,即loss。然后我们通过降低loss的方式改变权重(更新梯度),缩小预测结果与真实值(标签)之间的差距。...原创 2022-07-28 10:43:08 · 1508 阅读 · 1 评论 -
上采样方式(反卷积、插值、反池化)
如下图max-pooling操作中黄色窗口中(左图)的0.8为最大值,网络会记住该值得索引位置,如右边的4×4网格中的标记所示,这样在进行反池化时,就可以将值放到对应的最大值索引的位置,其余位置补0,如下图uppooling操作黄色窗口(右图)中将1.3放到了之前记录的最大索引的位置,其余位置补0。设i+u,j+v(i,j为正整数,u,v为大于零小于1的小数,下同)为待求像素坐标,则待求像素灰度的值f(i+u,j+v)得出的(0,0)就为原图坐标,则待求点的值就用求出的相对应原图位置的值来代替。...原创 2022-07-22 18:11:58 · 2079 阅读 · 2 评论 -
遥感影像分类任务的复现
configs中是一个配置文件,用来运行模型dataset中是一个myDataset.py的文件,主要用来处理输入的数据,可以将自己的数据集放到此处models中包含了该项目可用的encoders如resnet、densenet等,如果需要对decoders代码进行改进,可以将需要改进的解码器文件放到该目录下,解码器文件获取地址decodersscripts中包含了一系列数据处理文件utils中包含了损失函数,混淆矩阵等内容的定义。...原创 2022-08-31 16:17:44 · 658 阅读 · 0 评论 -
划分训练集、验证集和测试集代码
val_ratio,和test_ratio分别为验证集和测试集所占的比例,test_ratio=0表示不划分测试集。输入需要划分的数据所在的文件夹,返回一个划分好的包含train,val和test的文件夹。原创 2022-09-05 10:01:14 · 3836 阅读 · 4 评论 -
多GPU训练网络模型——数据并行(DataParallel、DistributedDataParallel)
分布式:分布式是指使用多台服务器的多块GPU进行运算,即多机多卡。并行:并行是指使用一台服务器的多个GPU运算,即单机多卡。原创 2023-07-14 10:44:56 · 818 阅读 · 0 评论 -
Pytorch基础学习(第八章-Pytorch深度体验)
课程一览表:一、图像分类一瞥——ResNet1.模型是如何将图像分类的?对于计算机而言,输入的RGB图片就是一个3D张量,而输出就是一个字符串(1)模型是如何将张量转化为字符串的呢?类别名与标签的转换: 取输出向量最大值的标号: 复杂运算:(2)模型如何完成图像分类?答:图像分类由模型与人类配合完成模型:将数据映射到特征人类:定义特征的物理意义,解决实际问题2.resnet18模型inference代码图像分类的Inference(推理)步...原创 2022-04-04 16:35:20 · 2947 阅读 · 0 评论 -
Pytorch基础学习(第七章-Pytorch训练技巧)
课程一览表:一、模型保存与加载二、模型finetune三、GPU的使用四、Pytorch常见报错原创 2022-04-04 09:08:37 · 3524 阅读 · 0 评论 -
Pytorch基础学习(第六章-Pytorch的正则化)
课程一览表:目录一、正则化之weight_decay1.正则化与方差、偏差、噪声的概念2.正则化策略(L1、L2)3.pytorch中的L2正则项——weight decay二、Bacth Normalization1.Batch Normalization概念2.Pytorch的Batch Normalization 1d/2d/3d实现三、Normalization_layers1.为什么要Normalization?2.常见的Normalizatio原创 2022-04-03 17:30:30 · 3261 阅读 · 2 评论 -
Pytorch基础学习(第五章-Pytorch训练过程)
课程一览表:一、TensorBoard简介与安装1.TensorBoard简介本节学习迭代训练TensorBoard:TensorFlow中强大的可视化工具支持标量、图像、文本、音频、视频和Embedding等多种数据可视化运行机制:代码:记录可视化数据并保存到硬盘中import numpy as npfrom torch.utils.tensorboard import SummaryWriter#记录可视化数据writer = Summar.原创 2022-04-02 17:28:11 · 2745 阅读 · 0 评论 -
Pytorch基础学习(第四章-Pytorch损失优化)
课程一览表:一、权值初始化1.梯度消失与爆炸为避免梯度消失与梯度爆炸的产生,就要严格控制网络输出层的输出值得尺度范围,不要太大、也不要太小。根据代码看原理构建MLP类,init函数中定义了100个网络层,每个网络层有256个神经元forward进行前向传播initialize函数对权值进行初始化如下所示,使用标准正态分布的方法对权值进行初始化class MLP(nn.Module): def __init__(self, neural_num,.原创 2022-04-02 10:21:47 · 1424 阅读 · 0 评论 -
Pytorch基础学习(第三章-Pytorch模型搭建)
课程一览表:目录一、 模型创建与nn.Mudule1.网络模型的创建步骤2.nn.Mudule的属性二、模型容器与AlexNet构建1.模型容器2.AlexNet构建三、常用网络层——卷积层1. 1d / 2d / 3d卷积2.卷积—nn.Conv2d()3.转置卷积—nn.ConvTranspose四、常用卷积层——池化、线性、激活函数层1.池化层——Pooling Layer2.线性层——Linear Layer3.激活函数层——Activ原创 2022-03-30 14:08:40 · 2635 阅读 · 0 评论 -
Pytorch基础学习(第二章-Pytorch数据处理)
课程一览表:目录一、人民币二分类与DataSet与DataLoader0.人民币二分类模型任务1. DataLoader2.Dataset3.人民币二分类二、数据预处理transforms模块机制1.transforms运行机制2.数据标准化——transformes.normalize三、transforms图像增强1.什么是数据增强2.transforms——裁剪3.transforms——翻转和旋转4.transforms——图像变换5.原创 2022-03-29 14:59:09 · 2868 阅读 · 2 评论 -
Pytorch基础学习(第一章-PyTorch基础概念)
课程一览表:目录一、.pytorch简介二、环境配置1.pycharm2.annaconda3.安装pytorch三、张量简介与创建1.张量的概念2.Tensor——直接创建3.Tensor——依据数值创建4.Tensor——依据概率创建四、张量操作与线性回归1.张量操作(拼接、切分、索引和变换)2.张量索引3.张量变换4.张量数学运算5.线性回归五、计算图与动态度机制1.计算图2.pytorch动态图机制六、aut.原创 2022-03-28 11:09:45 · 2873 阅读 · 0 评论