
Pytroch基础
文章平均质量分 81
简单介绍Pytroch使用过程中常用的操作
像风一样自由的小周
这个作者很懒,什么都没留下…
展开
-
Pyramid Scene Parsing Network–CVPR,2017论文解读及其pytorch代码
现阶段随着数据集制作精细化、标签种类变多、具有语义相似标签等导致出现一些困难样本,使得经典的语义分割网络无法很好的处理(如FCN,作者认为FCN缺乏合适的策略去利用全局场景类别线索)这些困难样本。如下,作者挑选了ADE20K数据集中几个具有代表性的困难样本,第一行因为FCN没有正确捕获图像内容之间的关系,错误的将外形和汽车相似的游艇识别为汽车,要是能够正确识别出其在水面上就能够避免这种错误;第二行是因为FCN没有捕获类别之间的关系导致遇到相似的类别。原创 2023-09-14 17:17:36 · 435 阅读 · 0 评论 -
交叉熵、Focal Loss以及其Pytorch实现
这到底是怎么做到的呢?下调权重是一种技术,它可以减少容易的例子对损失函数的影响,从而使人们更加关注困难的例子。Focal Loss自然地解决了阶级不平衡的问题,(1因为来自多数类别的例子通常容易预测,而来自少数类别的例子由于缺乏数据或来自多数类别的例子在损失和梯度过程中占主导地位而难以预测。Focal loss关注的是模型出错的例子,而不是它可以自信地预测的例子,确保对困难的例子的预测随着时间的推移而改善,而不是对容易的例子变得过于自信。不同损失函数有着不同的约束作用,不同的数据对损失函数有着不同的影响。原创 2023-06-26 16:58:24 · 4070 阅读 · 0 评论 -
Pytorch存储权重以及如何加载
关于Pytorch如何使用,必然是官方教程写的好。原创 2023-05-08 17:14:19 · 4106 阅读 · 1 评论 -
常见的上采样操作以及其Pytorch实现
而在实际生成的图像中,该部分却是由深深浅浅的近黑方块组成的,很像棋盘的网络。这个效应在深度卷积神经网络中的影响是很大的。就是在反卷积过程中,当卷积核大小不能被步长整除时,反卷积就会出现重叠问题,插零的时候,输出结果会出现一些数值效应,就像棋盘一样。并且,反卷积只能恢复尺寸,并不能恢复数值,因此经常用在神经网络中作为提供恢复的尺寸,具体的数值往往通过训练得到。普通的上采样采用的临近像素填充算法,主要考虑空间因素,没有考虑channel因素,上采样的特征图人为修改痕迹明显,图像分割与GAN生成图像中效果不好。原创 2023-04-17 17:23:27 · 3491 阅读 · 0 评论 -
Vision Transformers for Dense Prediction论文笔记
本篇论文主要提出一种网络,基于Transformer去进行密集预测。众所周知,对于密集预测任务,常见的网络架构为Encoder+Decoder结构。当Encoder提取的特征有损时,Decoder很难去进行恢复。但是目前常用的卷积网络架构常常使用下采样方式,**逐步增加感受野,将低级特征分组为抽象的高级特征,同时确保网络的内存和计算需求保持易于处理。**但是,下采样有一个明显的缺点,特征分辨率和粒度(我感觉这里的粒度像是细粒度特征)在模型的更深层特征丢失,在Decoder中难以恢复。原创 2023-04-14 09:29:56 · 2187 阅读 · 0 评论 -
MAE论文笔记+Pytroch实现
本篇论文提出了一个非对称自编码器架构(这里的非对称指的是Encoder和Decoder看到的东西即输入时不一样的),用来得到一个泛化能力比较强的特征提取器。进行自监督学习可以用来进行迁移学习。自编码器简单的说就是一个模型包含两个部分Encoder和Decoder,其中Encoder用来进行特征提取,Decoder用来进行还原图像。自编码器的任务是输入噪声或有损图片,输出重构好的图片,就是还原图片。通过训练,得到的特征提取器Encoder就有较强的特征提取能力,可以用来进行自监督学习。什么叫自监督学习呢?原创 2023-04-08 23:06:42 · 2416 阅读 · 4 评论 -
ViT笔记以及其Pytroch实现
目前在NLP领域,transformer已经占据主导地位。不少学者尝试将attention和CNN相结合,这些方法往往依赖于CNN,其性能相较于常见的卷积网络如ResNet等还是有差别。在NLP领域,使用transformer时,当不断增加模型大小和数据集数量,模型性能没有出现饱和趋势。同样的在CV领域,当数据量较小时,使用transformer有时并不比常见卷积性能好。但当数据集数量不断变大,transformer性能不断提高,甚至超过常见卷积模型。本片论文介绍的方法主要是用来进行分类的。原创 2023-04-06 10:33:15 · 858 阅读 · 0 评论 -
Pytroch数据集处理以及自定义数据集
transform首先,如果自定义transform就需要遵循一定的规则。仅接受一个参数,并返回一个参数。如果是多个图片需要同时处理,可以用字典传输实现需要在__call__中进行如下为参考代码。原创 2023-04-04 10:37:06 · 588 阅读 · 0 评论 -
ResNet简单介绍+Pytroch代码实现
当网络层数越来越深时,模型性能不如层数相对较少的模型。这将不利于构建更深的模型。现阶段有采用BatchNorm层来缓解梯度消失或者爆炸,但效果并不明显。训练集上就出现了退化情况,故不是过拟合导致。按道理,给网络叠加更多层,浅层网络的解空间是包含在深层网络的解空间中的,深层网络的解空间至少存在不差于浅层网络的解,因为只需将增加的层变成恒等映射,其他层的权重原封不动copy浅层网络,就可以获得与浅层网络同样的性能。更好的解明明存在,为什么找不到?找到的反而是更差的解?原创 2023-02-02 17:26:32 · 976 阅读 · 0 评论 -
pytroch冻结某些层的常用方法
有两个网络串联训练(model、model1),现在想固定住model的网络参数,网络训练过程中只更新model1的权重。其中model为仅包含两个卷积层的网络,model1为仅包含一个全连接层的简单网络。原创 2022-10-06 19:12:46 · 4507 阅读 · 0 评论 -
pytroch:model.train()、model.eval()的使用
最近在把两个模型的代码整合到一起,发现有一个模型的代码整合后性能大不如前,但基本上是源码迁移,找了一天原因才发现是因为model.eval()和model.train()放错了位置!!!故在此介绍一下pytroch框架下model.train()、model.eval()的作用和不同点。......原创 2022-08-08 11:00:07 · 5972 阅读 · 2 评论 -
关于Pytroch中tensorboardx的使用
Pytroch如何使用tensorboardx原创 2022-08-06 15:44:47 · 743 阅读 · 0 评论 -
Pytroch同一个优化器优化多个模型的参数并且保存优化后的参数
在进行深度学习过程中会遇到几个模型进行串联,这几个模型需要使用同一个优化器,但每个模型的学习率或者动量等其他参数不一样这种情况。一种解决方法是新建一个模型将这几个模型进行串联,另一种解决方法便是往优化器里面传入这几个模型的参数。...原创 2022-08-05 16:38:55 · 6469 阅读 · 0 评论 -
Pytroch使用混合精度进行训练
简单介绍apex库的安装以及使用,并简单介绍了动态loss scale的使用原创 2022-07-10 19:28:01 · 563 阅读 · 0 评论 -
Pytroch利用GPU训练模型以及固定随机种子
Pytroch利用GPU训练模型需要将设计好的和放入指定的GPU上,至于损失函数个人认为不需要放到GPU上,至于原因引用知乎高赞回答(当然把损失函数放到GPU上也不会报错)通常不需要。简单地说,损失函数接收一个或多个输入tensor,如果输入tensor本身就是在gpu上,则输出tensor自然就在gpu上。构建网络时,需要主动to或cuda的包括模型输入tensor,以及对应的Module(网络模型)对象。.cuda()网上有人说使用.cuda()不能指定GPU,但经过本人实践是可以指定GPU的。...原创 2022-08-01 17:21:37 · 2215 阅读 · 0 评论 -
Tensor、PIL、Numpy三者互相转化
最近在用pytroch进行图像预处理和结果输出遇到了Tensor、PIL、Numpy三者之间相互转化,通过查阅资料,得到了三者相互转化的代码,在此进行汇总。原创 2022-07-22 19:04:18 · 882 阅读 · 0 评论 -
Pytroch加载部分权重
HardNet网络结构如下训练好的HardNet保存的权重名称将最后一层去掉得到HardNet的部分模型HardNet_old二、 测试使用方法为利用加载模型权重通过调试发现net_old和net_new权重不一样,该方法可行。如果将strict参数设置为True则会报错。.........原创 2022-07-12 19:32:50 · 916 阅读 · 0 评论 -
Pytroch进行模型权重初始化
Pytroch常见的模型参数初始化方法有apply和model.modules()。Pytroch会自动给模型进行初始化,当需要自己定义模型初始化时才需要这两个方法。原创 2022-07-20 11:38:25 · 3949 阅读 · 1 评论