自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 torch 模型中相关参数param及child修改测试详解

以我们上述的例子来看,它的输出就是整个Sequential层。如果我们定义模型的时候有两个Sequential,就会分别输出两个。所以一般的话使用model.children()会建立一个函数递归调用。这个就是输出模型的名字和参数,很常见了。name的话就是每个层的名字,参数就很多了,大家可以自己试一下。与1差不多,只不过仅有param没有了name。中的children是一个道理。该方法会遍历模型的子层,就跟。其他用到的在更新吧。

2024-04-19 20:07:56 183

原创 VIT与changeformer论文阅读笔记

VIT主要就是引入transformer到CV中,众所周知transformer相当于是句子的输入,那么最主要的就是看如何将图像转为token序列,实际上是通过一个卷积层来实现的,如下图所示。

2024-04-01 17:47:09 301

原创 以微调deepseek为例,基于transformers改写实现lora+

证明了对Lora的A和B使用相同的学习率无法有效的特征学习。还证明了通过以一个良好选择的固定比率设置不同的学习速率来修正,可以提升模型效果。这种算法为LoRA+。在实验中,LoRA+提高了性能(1%的−2%的提高)和微调速度,计算成本与LoRA相同。

2024-03-21 00:11:27 1020

原创 ModuleDict:什么情况下使用

【代码】ModuleDict:什么情况下使用。

2024-03-08 15:25:35 391

原创 Gemma模型一些细节讲解

Gemma模型报告中提到的几个点进行代码细节解读一下:(1)Embedding层共享参数(2)输入输出层均进行RMSNorm。

2024-03-04 17:45:46 580

原创 RMSNorm 类中引入一些参数

引入可学习的参数可以增加模型的复杂性,但同时也可能提高模型的泛化能力和性能。在设计模型时,需要权衡模型的复杂度和训练的难度。,可以为每个维度引入一个可学习的缩放参数。这可以通过创建一个与输入维度相同的权重矩阵来实现,而不是一个向量。可以设计一个自定义的归一化函数,其中包含可学习的参数。在归一化之后,可以引入一个可学习的激活函数,其参数也可以是可训练的。类中,引入可学习的参数,以增强模型的表达能力和适应性。除了缩放,还可以为每个维度引入一个可学习的偏移参数。中的激活函数,并将可学习参数作为激活函数的输入。

2024-03-04 10:22:26 1010

原创 Deepspeed使用

最近在调试deepspeed进行训练,正好工作的项目中也用到了deepspeed,所以记录一下deepspeed的用法等。pytorch 的DDP比较复杂,所以简单易用的deepspeed应运而生。本文仍然是不完整的,随着学习将会持续更新内容。

2024-02-08 10:40:22 566

原创 Vscode远程连接管道不存在

vscode在本地配置的.ssh文件下生成了known_hosts,这里面包括了之前的配置信息,可以删掉重新配置试试。

2024-02-05 10:02:26 359

原创 查看机器是否可用bf16

记录一下查看机器是否可用bf16精度,

2024-01-31 11:16:05 405

原创 RuntimeError: cutlassF: no kernel found to launch!

模型推理的时候出现这个问题搜了搜本以为是bfloat精度问题,但改了之后依然没用。nvidia-smi的cuda version是12.2。nvcc -V 的cuda version是12.1。最终将torch版本回退为2.1.0后成功解决问题。torch版本为2.1.2。

2024-01-29 16:13:21 1216 3

原创 Python 中glob用法

glob 是 Python 中的一个模块,用于查找与指定模式匹配的文件路径。它特别适用于在目录中搜索文件,而不需要知道文件的确切名称。glob 模块提供了一个名为 glob() 的函数,它接受一个字符串参数,该参数是一个通配符模式,然后返回一个列表,其中包含了所有匹配该模式的文件路径。我的python_train文件夹中有四个文件,这样就可以根据后缀全部读取了。

2024-01-22 17:21:58 328

原创 deepspeed训练zero3策略cpu内存不足报错

大概率是cpu内存不足所致,训练用的zero3策略,将deepspeed的zero3策略换为zero2策略问题就解决了。用deepspeed训练deepseek过程中遇到如下问题,

2024-01-18 23:40:51 838

原创 ‘DeepSpeedCPUAdam‘ object has no attribute ‘ds_opt_ada。 Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero

很大一长串的报错如下,主要就是编译问题,搜了很多网上的帖子,很多都是告诉你编译错误,要重新安装啊或者设计一些编译底层、缺少一些文件等,但是都没有解决我的问题。查看linux中存在的cuda版本,进入/usr/local,查看,可以看到有很多版本,选一个你需要的版本。今天在跑deepseek coder 微调的时候运行后碰到标题报错,随之而来的还有很多,,在.bashrc文件里指定了cuda的路径就好了。然后再运行应该就会成功训练啦!然后source一下使其生效。

2024-01-18 16:42:20 1191

原创 valueerror: no slot “”specified on host ‘localhost‘

deepspeed 单机多卡的时候不要设置export CUDA_VISIBLE_DEVICES,否则容易出现序号的错误。例如设置export CUDA_VISIBLE_DEVICES=4,5 就会报valueerror: no slot “”specified on host ‘localhost’故可以直接如下所示,添加 --include localhost:2,3。

2024-01-18 14:53:17 692

原创 python call()方法

在上面的例子中,我们定义了一个名为Adder的类,该类接收一个参数x。call()方法则将传入的参数y与实例的x相加,并返回结果。然后我们创建了一个add5的实例,并调用该实例两次。call()方法可以使得一个类实例可以像函数一样进行调用,使用方式类似于函数调用。引用:https://pythonjishu.com。

2024-01-16 17:14:13 327

原创 code llama与starcoder论文总结

两个模型在数据方面最大的特点即在一定程度上都加入了通用语言数据,而CodeLLAMA更是直接在通用语言模型的基础上进行代码数据微调,这也证明了代码大模型的微调训练策略是行得通的,关键即在于训练的代码数据质量。在我们自己的代码大模型数据方面:分布可以基于CodeLLAMA的数据分布作为先验知识,搜集可以基于StarCoder中的代码过滤及筛选策略,代码数据生成可以考虑CodeLLAMA中的self-instruct策略:即基于自身模型给出测试代码及答案代码,将生成结果输入测试代码进行判断。

2024-01-12 17:16:40 481 2

原创 nn.functional与nn

有这么一种情况, 我想行为不同,但参数矩阵相同的两个 layer 共享参数, 该怎么做呢?如果行为相同那就简单了,直接多次调用 nn 里面的 Module 就好了。这个操作很像 MXNet 里共享参数的做法。pytorch 的 nn 模块则可以大大方便相同行为层的参数共享。这个操作会有用的,尤其是做 detection 和 segmentation 的同学。nn.functional与nn作用基本相同的,一般来说用nn即可,但是有特殊情况,比如说参数共享,就需要用nn.functional 了。

2023-12-26 18:07:48 349

原创 HfArgumentParser及dataclasses类(dataclass、field、asdict、__post_init__)相关

以上述代码为例,我们在定义自己深度学习模型时,会有训练参数、常规配置参数、验证参数等,所以我们可以分好几个dataclass类,使用上述代码去分配。终于,我们可以介绍HfArgumentParser了,这个用法主要常见于一些深度学习的代码,而且是在参数的定义中。该方法返回的是一个元祖,若你只需要返回一个,则应使用下述方法,将上述代码对应行数修改一下即可。是一个数据类,一般用于对数据的定义,他会默认添加__repr__及__init__。的知识,这两个都是属于dataclasses类,之前看源码还会有一个。

2023-12-26 17:55:13 631

原创 Python的魔法方法及*args**kwargs详解

简而言之就是定义函数时可以通过** kwargs手机关键字参数,然后本身成为一个dict。

2023-12-17 20:04:59 361

原创 __str__在异常类中的应用

在自定义异常机制时,通常需要加一个__str__。代码如下import sysimport os"报错类型": except_type,"报错信息": except_value,"报错文件": except_file,"报错行数": except_traceback.tb_lineno,

2023-12-17 18:42:49 313

原创 Python切片[:, 0:1]及torch.argmax相关详解

X[:, 0:1]就是取所有行的第0列,X[:,0]也是取所有行的第零列,但区别就是前者取每一行的第零列后都会有一个新的括号,而后者是取出来当做数,最终以一个大括号的形式。简单易懂,结论:dim的取值为[-2, 1]之间,只能取整,有四个数,0和-2对应,得到的是每一列的最大值,1和-1对应,得到的是每一行的最大值。如果参数中不写dim,则得到的是张量中最大的值对应的索引(从0开始)。python中的切片其实也是跟torch中的切片一样了,常规的切片就不再赘述,主要说一下平时在torch中遇到的多维切片。

2023-12-12 14:43:32 378

原创 Python异常机制及自定义异常类详解,有try except为什么还要有raise?

最后再来说一下自定义异常类吧,主要目的是增加报错的可读性,丰富报错信息,其实没有自定义异常类也是可以的。具体的定义方法也很简单,下面贴两个代码大家可以自己跑一下看一下, 我相信就会对自定义异常类有了一个充分的认识,授人以鱼不如授人以渔。

2023-11-29 15:12:29 414

原创 Python中@property详解及dir()和__dict__一些思考

property 装饰器用于将一个类的方法转化为属性,使其能够像访问属性一样访问方法,而无需使用函数调用的括号。

2023-11-23 16:41:14 404

原创 深度学习中的评价指标计算

主要就是准确率,召回率,F1分数吧,其实用一个表格就能明白的表示了。

2023-11-09 15:49:51 54

原创 Pytorch unsqueeze详解

上述例子原维度是(2,3,1),对应下标为(0,1,2),-2表示从下表0开始向左数两位,即在原下标为1的地方插入一个维度,原维度向左移动,即得出(2,3,1,1)。unsqueeze函数:就是在指定的位置插入一个维度,有两个参数,input是输入的tensor,dim是要插到的维度。通过上述例子可以说明,正数是向右数插入的维度,负数则是向左数插入的维度。正数的话很好理解,如果是负数呢?

2023-11-02 10:55:16 253

原创 解决git clone及huggingface下载等网络失败问题

这里的1020换成你自己的VPN端口,然后开着VPN git clone就可以成功啦。最近git clone经常会clone不下来,于是乎记录一下解决方案。

2023-10-16 17:58:23 2544

原创 Pandas库使用

新增列及保存为新文件操作如下,下面是新增一个标题为AN的一列,并最后保存。值得注意的是其中的y_t可以是列表形式也可以是numpy形式。为Pandas处理一些深度学习和机器学习的表格以及TXT文件时非常的方便。现在对平时用到的用法做一个记录。用read方法即可读取excel及其他格式文件。

2023-10-09 15:27:53 18

原创 Python 用法总结(持续更新)

主要记录一下工作中用到python的总结吧 相当于一个大杂烩了。

2023-09-06 15:24:33 357

原创 工作中的一些docker总结

最近的一个项目用到了docker打包镜像和部署到k8s上面,也算是从一个小白到稍微了解一些了吧。主要记录一些遇到的问题和步骤。

2023-08-28 16:31:14 58

原创 关于timm库的create_model的out_indices详解

意思就是一般是从第二层开始返回,这样的话在create_model中设置out_indices时就只有0,1,2,3,4这几个值。timm库真的很方便,里面包含了各种soat的backbone,特别是我们可以用到特征提取层。这里我需要的是efficientnetv2网络结构的特征提取层,论文中各个层的信息如下。按理说可以返回七个层,但上面代码输出的结果是。只返回了五个层,查阅说明文档后发现。

2023-03-08 14:36:25 756

原创 深度学习手写数字识别 MNIST

深度学习的入门代码 手写数字识别MNIST

2023-01-14 21:23:13 159 1

原创 cesium中小车沿路径动态运行

这次做了一个cesium中小车沿路径动态运行的小代码。需要的数据就是小车glb模型(cesium有自带),多个路径的点坐标(经纬度即可)中间出现了几个问题值得记录。

2021-03-27 23:31:56 3016 3

原创 Cesium引OWM气象数据

第一次写CSDN,记录一下自己的cesium学习过程吧。最近在搞cesium接入openweathermap开源气象数据。之前在全网搜也没有搜到相关的方案。所以很头疼,钻研了几天都没有成功,最后终于做成了。具体步骤就是: 申请owm的key,主要代码:viewer.imageryLayers.addImageryProvider(new cesium URL格式)...

2020-08-01 10:19:12 620 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除