- 博客(23)
- 收藏
- 关注
原创 解读torch的 DistributedSampler
通常与分布式DDP配合使用,用作dataloader的sampler,顾名思义,数据采集器决定dataloder在当前batch选择哪些数据,DistributedSampler就用于在分布式训练中对数据集进行划分和采样。
2023-06-26 10:20:02
4076
1
原创 华为mindspore-如何训练一个gpt一样的文本生成模型
CausalLanguageModelingTrainer Task For Trainer. Args: model_name (str): The model name of Task-Trainer. Default: None Examples: >>> from mindformers import CausalLanguageModelingTrainer >>> gen_trainer = CausalLanguageModeli
2023-06-25 18:42:12
433
原创 华为mindspore-Bloom模块代码分析1.head/BloomLMHeadModel
head主要并供训练损失或logits(预测结果),是非常重要的一个部分。在构造函数中,它根据并行配置来初始化并行模式,并处理模型并行不可整除词汇表规模的情况,将相应的警告信息记录下来。在训练阶段,它会对输入序列进行切片,去除最后一个token,并生成相应的mask。它是用于 Bloom 模型的头部,负责将模型的隐藏状态与嵌入表进行矩阵乘法运算得到logits。bloom模型类似于gpt,适用于语言建模任务,可以用于生成文本、预测下一个词等任务。然后,根据并行配置的设置,选择合适的操作符。
2023-06-25 17:47:28
273
1
原创 多模态论文串讲笔记
coop 和 CLIP-adapter 都是在 clip 基础上增量式的工作,clip 使用一个人为设定好的 prompt 直接进行零样本推理,而 coop 和 CLIP-adapter 都是使用小样本学习,coop 是初始化一个随机的 prompt,在小样本中学习合适的 prompt,从而更适应这个任务;adapter 是在模型中间插入一个随机的可学习的模块,通过更新这个模块来更适应下游任务。
2023-06-22 14:51:50
511
2
原创 虚拟一个tensor data,来验证模型pipeline构建的正确与否
使用 torch.utils.data.TensorDataset 根据Tensor创建数据集(numpy的array,Pandas的DataFrame需要先转换成Tensor)。torch.utils.data.random_split 将一个数据集分割成多份,常用于分割训练集,验证集和测试集。使用 torchvision.datasets.ImageFolder 根据图片目录创建图片数据集。继承 torch.utils.data.Dataset 创建自定义数据集。)将多个数据集合并成一个数据集。
2023-06-20 18:59:28
97
1
原创 torch.distributed.barrier()和 torch.cuda.synchronize()
https://blog.youkuaiyun.com/weixin_43118280/article/details/124057777https://blog.youkuaiyun.com/Tanqy1997/article/details/124677130https://blog.youkuaiyun.com/hxxjxw/article/details/126238957
2023-06-20 16:13:31
554
1
原创 bloom
贡献者: bigsicence -HuggingFace发表时间:2022.7BLOOM是一个仅有解码器的Transformer语言模型,它是在ROOTS语料库上训练出来的,该数据集包括46种自然语言和13种编程语言(共59种)的数百个来源。我们发现,BLOOM在各种基准上取得了有竞争力的性能,在经历了多任务提示的微调后,其结果更加强大。
2023-06-19 15:44:12
473
原创 ViT的可解释化-深度解析GradCam源码(4)-GradCAM类的定义
关于特征图可视化的计算大多在class GradCAM的实例化中完成下面具体看一下GradCAM如何定义的获取目标层中每个通道的权重向量。返回权重通道的方法,通常只需要实现此函数。
2023-06-14 15:21:16
750
原创 ViT的可解释化-深度解析GradCam源码(3)-reshape_transform转换张量形状
今天解读另一个部分,之前(2)里有说过把hook获取到的变量进行转换再存到cpu,那么是怎么转换的呢?当存在reshape_transform的时候调用他进行转换。
2023-06-13 23:00:34
588
原创 ViT的可解释化-深度解析GradCam源码(2)-注册hook获取梯度
今天来讲一下 class ActivationsAndGradients,他用于从指定中间层提取激活值和注册对应的梯度,是GradCam库很重要的一部分。
2023-06-12 23:04:18
443
1
原创 推荐两个阅读论文的ai辅助网站
Typeset.io(推荐,免费好用,功能强大)ChatDOC(不免费)ChatPDF(只是提取文字调用api)
2023-06-12 15:21:50
2410
1
原创 Visualizer-简化你的ViT可视化之源码分析
cache = {}首先在类里面定义了一个状态参数和一个空字典用于存储,注意这个是在实例化之前就有的,是在类中定义的,所有实例化都可以访问之后每个不同的实例化是为了捕捉不同的中间参数,统一放进类的字典cache中。
2023-06-08 15:57:23
541
2
原创 一文带你搞懂PyTorch中所有模型查看的函数model.modules()系列
model一般继承nn.Model 他的实例一般具有几个有序_modules,_parameters,_buffers,表示当前model的子模块,自己注册的parameters和buffers注意,_modules字典keys对应子模块名字,value对应子模块的实例,所以可以迭代的调用子模块的子模块,比如下面两个函数。
2023-06-05 17:08:59
3099
2
原创 pytorch之基于model._modules改写模型所有的conv层
输出 0 1 2 3 4 5 6 7 8 9 10 11 ,代表Sequential里面的12个block。同时可以遍历子模块的子模块,因为子模块也有一个属性来保存着这样一个有序字典,比如。然后查看这个模型的model._modules属性。所以,遍历所有模块,并重新改写conv模块的代码如下。来访问模型中的每个子模块,遍历一下,打印名字,得到。打印一下,发现很长,一层套着一层。发现这是一个有序字典。
2023-06-05 13:42:48
212
1
原创 阅读ViT的Attention源码,告诉你数据如何流动
注意力得分可以看作是查询$q_i$和键$k_j$之间的相似度,表示了当前位置$i$与其他位置$j$之间的重要程度关系。总之,在整个注意力机制模块中,输入$x$通过线性变换得到查询,键,值张量,然后进行点积注意力操作得到注意力分配,再通过加权求和得到最终输出$x'$。具体来说,我们可以使用点积操作将查询$q$和键$k$在最后两个维度上进行矩阵乘法,并将结果除以$\sqrt{d_k}$,其中$d_k=C//numheads$为每个头的维度。其中$W_o$是对注意力机制的输出进行线性变换的参数。
2023-06-04 13:11:44
1155
1
原创 详解ViT里面的Stochastic Depth
`torch.linspace(0, drop_path_rate, depth)`函数用于从0到`drop_path_rate`(丢弃路径比率)中等间距采样生成长度为`depth`的一维张量,这个张量的元素值表示每个Block层应该使用的丢弃路径比率。今天看代码的时候发现下面一段。
2023-06-03 22:26:41
804
1
原创 import transformers遇到版本不匹配问题解决办法(全)
描述:jupyter环境 conda 环境管理。发现是pip和conda 安装版本冲突。检查自己conda list。2.不行的话,继续查找问题。嘶,难道是我没有重启。
2023-05-30 15:24:00
2045
3
原创 timm输出模型中间特征-features_only=True
可以看到,feature_extractor 其实也是一个神经网络,在 timm 中称为 FeatureListNet,而我们通过 out_indices 参数来指定截取到哪一层特征。在build_model_with_cfg创建模型的时候,如果有feature相关的参数,就用FeatureListNet重新包装模型。create_model时不止有可以控制head的参数,我们还可以添加参数features_only=True。不过没有也有办法,可以使用hook,这个我们下一节再讲。# 输出模型中间特征。
2023-05-25 19:42:47
1428
1
原创 如何训练一个ViT模型-基于timm(2)
模型导入预训练ViT,改变最后一层分类层,使之符合cifar10的10个类别model.to(device) #可不可以用gpu,不行的话就与、用cpu优化器传入ViT head的参数,只训练后面的分类层。
2023-05-23 16:21:39
1800
1
原创 timm库(CV利器)的入门教程(1)
省流:使用timm加载CNN进行图像分类,调整CNN使之更适合你的任务问:使用timm搭建一个可以使用的CNN或ViT拢共需要几步?答:4步0.安装 timm2.创建model3.运行model这一节很基础,会的兄弟们可以跳过看后面的接下来具体讲一下如何使用,代码codebook会之后给出。
2023-05-21 15:44:56
3571
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人