![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch学习
文章平均质量分 93
likeGhee
这个作者很懒,什么都没留下…
展开
-
(pytorch进阶之路)Informer
论文:Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting (AAAI’21 Best Paper)看了一下以前的论文学习学习原创 2023-02-27 17:32:25 · 1661 阅读 · 0 评论 -
(pytorch进阶之路)CLIP模型 实现图像多模态检索任务
CLIP模型解决了一个多模态问题代码地址:https://github.com/yyz159756/CLIP-VIT-原创 2022-10-21 16:14:30 · 7089 阅读 · 0 评论 -
(pytorch进阶之路)Attention-based U-net实现
U-net 原理部分之前的博客有些了,这里主要记录一下代码实现U-net往期博客:https://blog.csdn.net/qq_19841133/article/details/126927383基于Attention-based(用的是自注意力机制)的U-net。原创 2022-10-20 23:58:20 · 2734 阅读 · 1 评论 -
(pytorch进阶之路)IDDPM之diffusion实现
DM beat GANs作者改进了DDPM模型,提出了三个改进点,目的是提高在生成图像上的对数似然第一个改进点方差改成了可学习的,预测方差线性加权的权重第二个改进点将噪声方案的线性变化变成了非线性变换。原创 2022-10-20 23:42:58 · 8347 阅读 · 7 评论 -
(随便看看)自监督学习
CVPR-2020 何凯明 动量对比无监督学习Nips-2020 Jean-Bastien Grill 仅正样本对比学习CVPR 2022 何凯明 MAE原创 2022-10-19 20:19:03 · 774 阅读 · 0 评论 -
(随便看看)进化算法
遗传算法进化策略神经网络进化原创 2022-10-04 11:26:11 · 631 阅读 · 0 评论 -
Random Forest,AdaBoost(adaptive boosting),GB (Gradient Boost), LightGBM
第三个特点是gradient based one side sampling,假设我们从最开始进行,模型m0执行后得到梯度下降结果gradient1,2,…在Ada中,首先weak learner构建a stump,one root and two leaf,leaf是分化出来的两个bin候选的属性,推理预测每个数据,根据结果动态的调整权重,错误的样本权重增加,相对的正确的样本权重减小,对下一个weak learner,更多的注意力放在了错误预测的样本上,尽量去正确的预测之前模型预测错的样本。原创 2022-10-01 18:00:25 · 702 阅读 · 0 评论 -
(pytorch进阶之路)DDPM回顾及Autoregressive diffuision model
扩散模型和自回归模型结合做多变量的序列预测的任务,基于过去一段时间的数据去预测未来一段时间的数据,并且是由一种自回归的方式去预测通过DDPM的回顾,我们得到了目标函数将其运用到自回归模型,我们可以用RNN或者Transformer构建时间依赖性的网络xt-1和ct-1输入到RNN中,生成ht-1,使用条件的扩散模型得到xt,ht-1作为模型的条件,现在有一个条件概率模型能够基于ht-1预测当前时刻的所想要的xt,前向过程还是从x0到xN,只不过在逆扩散过程构建噪声网络的时候加入一个ht-1。原创 2022-09-20 10:07:01 · 1582 阅读 · 0 评论 -
(pytorch进阶之路)U-Net图像分割
在开始u-net用在生物图像分割,细胞电镜图片输入到U-net输出一张细胞组织分割的图像作者提出了U型的架构做图像分割的任务,照片输入到网络,输出对每个像素点的分类,如分类像素点是目标对象还是背景,给不同的分类对象涂上不同的颜色总体模型:输入单通道572×572,输出2通道388×388,2通道是因为做的 像素二分类,572是从388填充而来的,外围做的镜像填充,这样外围的像素点也有上下文信网络的第一阶段首先单通道572×572经过3×3的卷积,得到570×570,输出通道数为64。原创 2022-09-19 16:02:24 · 2500 阅读 · 2 评论 -
(pytorch进阶之路)交叉熵、信息熵、二分类交叉熵、负对数似然、KL散度、余弦相似度
时空维放后面比如C后面依次是H,W,channel,T,把分类维度C放在第二维度,后面的维度多少维都没问题,注意这里的input是未归一化的,也就是没有进行softmax。target可以传入一个整型,一个类别的标签,如果输入是[N,C],则传入[N],如果输入传入的是[N,C,…] ,则target为[N,…做机器学习的时候,用CE和kld其实是一样的,因为IE传入的target分布是一个one-hot分布,熵其实为0,如果是非delta分布计算出的结果也是一个常数,对参数更新没有任何贡献。原创 2022-09-18 16:21:21 · 2154 阅读 · 0 评论 -
(pytorch进阶之路)DDPM扩散概率模型
扩散概率模型2020年类似VAE GAN是一个生成式模型生成模型一共五类,seq2seq自回归的解码GAN,通过判别器迭代优化生成器Flow,数学严谨可逆过程,设计巧妙的结构VAE,原创 2022-09-17 16:54:25 · 3844 阅读 · 1 评论 -
(pytorch进阶之路)NormalizingFlow标准流
NF和GAN一样是一个生成模型,NF与GAN不同的是,GAN是以模糊的方式对目标数据分布进行建模, 没有直接写出px的表达式,而是将x送入下游的判别器做分类任务,通过对抗的方式让生成器生成比较好的效果而标准流NF可以显式地将目标的表达式px写出来,通过优化对数似然函数达到最大去调整参数,使得模型很好的拟合目标分布标准流模型是一个可逆的模型,也就是训练的时候,是从x到z的变化过程,最大化似然函数,推理时候就反过来使用,以一个随机变量z作为输入,把网络完全逆过来,计算反函数,算出x。原创 2022-09-16 12:50:31 · 3553 阅读 · 4 评论 -
(pytorch进阶之路)cGAN、LSGAN
原来gan有什么问题:判别器的输入无论是真实的样本还是预测样本,输入都只有一个,x或者g(z),我们只是把照片放入判别器中但是我们在MNIST数据集中,有10类数据分别是0~9,仅仅是输入随机的高斯变量z,没有输入任何的其他信息,不能指望生成器能够生成特定数字照片。...原创 2022-08-11 20:55:30 · 1119 阅读 · 0 评论 -
(pytorch进阶之路)GAN
GAN通过一个对抗过程同时训练两个模型,一个模型是G生成模型,另一个是分类模型D,D用来判别生成样本是来自于真实的样本还是来自于虚构的样本,训练G的过程是为了让D犯错的概率最大,也就是D无法判断是生成的还是真是的样本。预测predictionG和预测predictionData相等时,根据D*公式,判别器输出为1/2,替换C(G)的 D* 变量,输出C(G) = -log 4。对k循环,从噪声z中采样构成噪声样本,从真实的样本中拿出样本x,基于梯度下降公式更新判别器的参数θd。导入MNIST训练集部分。..原创 2022-08-10 21:52:23 · 356 阅读 · 0 评论 -
(pytorch进阶之路)四种Position Embedding的原理及实现
定义子函数,获得每个window中两两patch之间二维的位置偏差,使用torch.meshgrid函数,根据x轴和y轴范围得到网格每个点的x坐标和y坐标,将其堆叠,获取任何两个点之间的横轴与纵轴坐标的差值,扩维做差即可。假设width等于5,有5个patch,0,1,2,3,4,第一个patch[0]和最后边的patch距离是-4,最 后一个patch和最左边的距离是4,综上距离值域是[-4, 4],个数是2 * 4 + 1,即。这里的table是随机初始化的,在模型中是可学习的。......原创 2022-08-09 19:33:22 · 10065 阅读 · 3 评论 -
(pytorch进阶之路)五种归一化原理和实现
为什么IN能实现风格迁移,输入是[N,L,C],我们对dim=1求均值和标准差,相当于当前这个单一样本在所有时刻不变的东西,我们减去均值再除以标准差,相当于我们把这个单一的时序样本在所有时刻中都有的东西消去了,什么东西是这个样本在所有时刻都有的呢,就是这个样本(图片)的风格,如果是音频,那就是这个人的说话的身份是不变。调用API,传入emb_dim,为了方便验证关闭affine,传入的input的格式是[N,C,L],输出格式也是[N,C,L],我们习惯[N,L,C],我们就转置一下。.........原创 2022-08-08 23:50:45 · 2945 阅读 · 0 评论 -
(pytorch进阶之路)Masked AutoEncoder论文及实现
这一部分简单介绍一下什么是MAEResnet的一作和MAE的一作都是何恺明大佬,于Facebook AI Research (FAIR)研究MAE作者给的定义是基于部分被观测的量去预测整个原始图像的简单的自编码方法MAE属于自监督学习的一种,像自监督学习NLP领域中还有word embedding,transformer,bert摘要,第一部分是写作意图,第二部分是对模型或者算法的描述,第三部分写在某某任务上取得的效果写作意图:提出用于CV自监督学习模型模型细节:图片分成一个个patch,随机的遮住一些块,原创 2022-08-06 21:31:04 · 2662 阅读 · 0 评论 -
(pytorch进阶之路)ResNet论文及实现
首先写了写作的背景,指出当前领域面临的问题,第二句话提出了解决方案残差学习框架和目的,后面是细节的展开和比赛取的成绩为了深层网络不差于浅层网络,让后面的层学习恒等变换,我们希望深层比浅层网络多出来的层数学习的函数y=x,也就是这些层没有起到任何的作用,这样深层网络至少和浅层网络一样好。算法用论文的图2表示,论文核心的思想框架x输入象征浅层网络输出,下面视作深层网络,浅层网络输出添加一条路径连接深层网络输出,这样多出来的这些层学习的是y-x,学习的是残差,这样比直接去学y容易学如果浅层网络足够的话。.....原创 2022-08-02 15:11:11 · 1158 阅读 · 2 评论 -
(pytorch进阶之路)ConvNeXt论文及实现
block层,没有4个stage的概念了,不同stage之间也没有下采样了,3+3+9+3一共18个block,block都是dim=384,每个block里面都是3层,第一层是dim=384的depth-wise二维卷积,第二层1×1的dim=384×4的point-wise卷积,第三层是1×1的dim=384的point-wise卷积,输入和最后一层输出进行残差连接,一共进行18次。..................原创 2022-08-01 15:04:23 · 3906 阅读 · 1 评论 -
(pytorch进阶之路)pytorch训练代码编写技巧、DataLoader、爱因斯坦标示
重写init,len,getitem三个函数getitem尽量从内存读(init中的),避免读磁盘若数据太大,可以维持一个固定的内存池,偶尔从磁盘读。原创 2022-07-24 22:34:43 · 938 阅读 · 0 评论 -
(pytorch进阶之路七)Attention Based Seq2Seq
decoder是解码器,将编码和注意力机制融合,解码器在每一步预测的时候需要对编码器输出状态做一个加权的求和,有forward函数和inference函数,forward函数用于训练,inference用于预测推理阶段。decoder在训练中会传入真实的seq_ids作为输入,但是这个seq_ids是带偏移的,最前面会补一个start_id,最后面会添加一个end_id,推理的时候以start_id作为开始,以end_id作为结束。encoder对语言上下文表征的建模。完整代码见github。......原创 2022-07-20 00:47:49 · 458 阅读 · 0 评论 -
(pytorch进阶之路六)Swin Transformer实现
如果想详细的看还是得看论文《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》Swin是shift和window两个单词的结合Swin-T主要有4个点,patch embedding,Swin Transformer Block,patch merging, classificationSwin-T对复杂度和效果都做了优化,CV和NLP领域效果都很好,对未来多模态方向提供方便......原创 2022-07-17 03:03:06 · 1714 阅读 · 0 评论 -
(pytorch进阶之路五)RNN/LSTM/LSTMP/GRU
写在前面:RNN老生常谈也太简单可以跳过了,只是留一个档…现在主要用的是RNN的变体,GRU或者LSTM模型有单向、双向、多个单向双向叠加,nn RNN API中num_layers就是设置堆叠多少层,如果设置双向,那么输出大小是hidden size * 2所谓的循环神经网络,在对一个序列进行建模的时候,再算每一个表征的时候,考虑上过去的历史信息,历史信息就通过记忆单元保存,每个时刻都存记忆单元中去获取历史信息,辅助当前时刻去做一个预测。双向有两条链,FL和BL,FL输出与当前输入和过去记忆单元有关,BL原创 2022-07-10 08:47:58 · 423 阅读 · 0 评论 -
(pytorch进阶之路四)Vision Transformer
Vision Transformer 用的是Encoder only类型,主要用的就是Transformer Encoder模块VIT的想法就是将Transformer应用到图像识别上去但是直接应用有个问题,NLP是单词为单位,一句话的词数还是比较少的,但是图片的基本单位是一个个像素点,数量多得多,导致计算量会非常的大。图片的一个像素点不包含多少信息量,对于图片它的信息量主要还是聚焦在一小块区域上。直接的想法就是将很多的像素点组成块,图像分成很多个块,将图像块当作一个token送入到transformer中原创 2022-07-07 11:07:10 · 1106 阅读 · 0 评论 -
(pytorch进阶之路三)conv2d
但还是大致说一下,in_channel = 2,out_channel = 3,所以kernel的数量是6,输出的每个通道由输入的每个通道与各自的kernel进行卷积操作,每个输出通道再将卷积操作的矩阵再加起来,最后将所有输出通道的矩阵拼接。步长为1的情况下,输出大小 = 输入大小 - 核的大小 + 2*padding大小 + 1所以我们要让输出和输入大小一致,根据公式可以计算出padding大小padding=‘same’ 自动计算大小比较简单,直接略过说明了原......原创 2022-07-05 22:38:14 · 939 阅读 · 0 评论 -
(pytorch进阶之路二)transformer学习与难点代码实现
transformer和cnn、rnn最大的区别是它的先验假设(归纳偏置)比较少,没有假设局部关联性(cnn),也没有去假设有序建模性(rnn),它的假设是任意一个位置都可以与其他位置有关联性,基本上没有任何的先验假设。好处是相比于cnn和rnn它可以更快速的学习无论是长时还是短时的关联性。但是数据量的要求与先验假设的程度成反比,也就是说先验假设越多,我们人为注入了更多的我们的经验,模型就更容易去学,需要的数据量就越低。因此transformer模型我们也不是可以无脑用,因为它的先验假设很少,要用好tran原创 2022-06-29 21:35:16 · 1109 阅读 · 0 评论 -
(pytorch进阶之路一)torchtext.data.Field
torchtext的最新版本是0.8.1了,但我from torchtext.data import Field不知道为什么找不到Field,只好先退回0.6.0版本了class Field 继承自(RawField)Field定义了一个数据类型以及转换为Tensor的指令。Field为常见的文本处理数据类,这些数据类型可以用张量表示。 它持有一个Vocab对象,该对象定义了字段元素的可能值集以及它们相应的数字表示。字段对象还持有与数据类型如何被数值化有关的其他参数,例如标记化方法和应该产生的张量的原创 2021-06-11 23:04:29 · 4939 阅读 · 7 评论