自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 训练报错问题

解决:

2024-04-18 14:41:56 372

原创 async def 定义函数与def定义函数的区别

关键字定义的函数是同步函数。这意味着当你调用这样的函数时,程序会等待该函数执行完成,并返回结果后,才会继续执行后续的代码。都是用于定义函数的,但它们的用途和工作方式存在明显的差异。非阻塞: 当你调用一个异步函数时,它不会立即执行。定义的函数是异步函数,也称为"协程"。这意味着你可以在该函数中执行异步操作,并且不会阻塞程序的其他部分。定义的函数在执行时需要等待(例如,网络请求或文件读取),那么整个程序都会被阻塞,直到该操作完成。定义的函数返回的是一个协程对象。定义的函数可以直接返回值。

2024-03-12 18:33:06 506

原创 python: inspect模块各函数的用法

inspect模块也被称为 检查现场对象。这里的重点在于“现场”二字,也就是当前运行的状态。inspect模块提供了一些函数来了解现场对象,包括 模块、类、实例、函数和方法。inspect函数主要用于以下四个方面。

2024-03-12 18:19:54 348

原创 PyTorch 源码解读之 torch.cuda.amp: 自动混合精度详解

调用时再 autocast。

2024-03-11 21:44:05 1172 1

原创 梯度剪裁: torch.nn.utils.clip_grad_norm_()

pytorch中梯度剪裁方法为 torch.nn.utils.clip_grad_norm_(parameters, max_norm, norm_type=2)1。三个参数:parameters:希望实施梯度裁剪的可迭代网络参数max_norm:该组网络参数梯度的范数上限norm_type:范数类型该部分处理了传入的三个参数。首先将parameters中的非空网络参数存入一个列表,然后将max_norm和norm_type类型强制为浮点数。

2024-03-11 21:23:41 542

原创 python:OderedDict函数

OederDict:是 Python 标准库中的一个数据结构,它是一个有序的字典(Ordered Dictionary)。与普通字典不同,有序字典会记住元素的插入顺序,这意味着你可以按照元素插入的顺序来迭代字典中的键值对。

2024-03-11 17:30:55 413

原创 pytorch 函数整理

_enter__和__exit__魔法函数的工作原理:以上面with as 的形式,那么首先是进入类函数中__enter__魔法函数,__enter__魔法函数返回结果赋值给as后面的变量,当with as 语句结束时,会自动调用__exit__魔法函数。.co_argcount:获取method_code..co_varnames:获取method_code.函数的输入变量的名称列表;函数的输入变量的数目;

2024-03-11 16:29:33 685

原创 torch.backends.cudnn.benchmark

可以在 PyTorch 中对模型里的卷积层进行预先的优化,也就是在每一个卷积层中测试 cuDNN 提供的所有卷积实现算法,然后选择最快的那个。这样在模型启动的时候,只要额外多花一点点预处理时间,就可以较大幅度地减少训练时间。适用于网络稳定固定输入尺寸大小时候使用,batchsize固定。

2024-03-05 10:46:59 499

原创 CLIP THE BIAS: HOW USEFUL IS BALANCING DATA IN MULTIMODAL LEARNING?

【代码】CLIP THE BIAS: HOW USEFUL IS BALANCING DATA IN MULTIMODAL LEARNING?

2024-03-05 10:35:16 366

原创 yaml.load() 出现 TypeError: load() missing 1 required positional argument: ‘Loader‘解决方案

查询相关资料发现,Yaml 5.1版本后就舍弃了 yaml.load(file) 这个用法。Yaml 5.1版本之后为使得load函数的安全性得以提高,就修改了需要指定Loader,通过默认加载​​器(FullLoader)禁止执行任意函数。

2024-02-18 10:58:25 732

原创 CUDA计时

【代码】CUDA计时。

2024-01-31 22:41:40 399

原创 CUDA错误检查

CUDA api执行结束回返回一个返回值,用于标记api的执行状态。

2024-01-31 22:20:35 426

原创 CUDA 笔记

cuda 内存管理。

2024-01-30 23:32:27 454

原创 CUDA 笔记

CUDA 笔记线程全局索引定义grid和block尺寸:dim3 grid_size(4);dim3 block_size(8);调用核函数:kernel_fun<<<grid_size, block_size>>> (…);具体的线程的索引方式:blockIdx.x 从0 到3, threadIx.x从0 到7计算方式:int id = blockIdx.x * blockDim.x +threadIdx.x;nvcc 的编译流程nvcc

2024-01-30 20:32:51 432

原创 CUDA笔记

nvidiasmi -q:查询GPU详细信息;nvidia-smi -q -l 0:查询特定GPU详细信息;nvidia-smi -q -l 0 -d MEMORY:显示GPU特定信息;nvidia-smi -h:英伟达的帮助命令。CUDA 核函数注意事项:1、核函数在 GPU 上进行并行执行;2、注意:(1) 核函数必须有 gloabl 进行修饰,限定词 global 修饰;(2)返回值必须是 void;3、形式:(1)global void kernel_function(argum

2024-01-29 22:33:29 1008

原创 【报错fatal: unable to access ‘https://github解决办法】

把140.82.114.4 github.com添加到C:\Windows\System32\drivers\etc里的hosts文件的最后一行,然后保存就行。方法二:把命令行里的http改为git重新执行。方法一:修改host文件。

2024-01-19 16:53:01 674

原创 cuda python

cuda 的编程模型。

2024-01-19 10:21:53 362

原创 嵌套的 cmake

通过这种方式CMakeLists.txt 文件之间的父子关系就被构建出来了。针对多个 CMakeLists.txt 文件。注意:父节点中的变量,子节点可以直接使用。

2024-01-18 18:30:29 387

原创 cmake 自定义宏

通过宏定义的方式,对程序中的代码进行控制。

2024-01-18 18:17:38 388

原创 Cmake 中list命令总结

将列表中的元素用连接符(字符串)连接起来成一个字符串。读取例表中指定索引的元素。在list中的指定位置插入若干元素。在list中的0位置插入若干元素。将指定的索引的元素从列表中移除。在list中的第一个移除元素。在list中的最后移除元素。从列表之中查找指定元素。将指定元素从列表中移除。移除列表中重复的元素。

2024-01-18 11:58:40 922

原创 cmake字符串操作

字符串追加:直接在字符串后追加。使用 list 实现字符串移除。使用list字符串追加。

2024-01-18 11:24:59 332

原创 cmake 打印日志命令

可以利用 message 打印变量信息,需要用 ${} 将变量值取出来。SEND_ERROR:CMake 错误,继续执行,但是会跳过生成步骤。AUTHOR_WARNING:CMake警告(dev),会继续执行。FATAL_ERROR:CMake错误,终止所有处理过程。WARNING:CMake警告,会继续执行。STATUS:非重要消息。

2024-01-18 10:48:55 346

原创 cmake 链接动态库命令

PRIVATE|PUBLIC|INTERFACE> item: <PRIVATE|PUBLIC|INTERFACE>设置动态库的访问权限,默认是PUBLIC: item 指的是链接的动态库的名称。动态库的链接具有传递性,如果动态库 A 链接动态库 B、C,动态库 D 链接动态库 A,此时动态库D也相当于链接动态库 B 和 C,并可以使用动态库B、C中定义的方法。target:指定要加载动态库的文件的名字,该文件可以是一个源文件,动态库,可执行文件。

2024-01-18 10:37:15 840 1

原创 cmake 在程序中链接静态库

发布制作的库文件需要提供两个条件。

2024-01-18 09:38:55 509

原创 Linux 修改文件权限命令

sudo:是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。sudo chmod -R 777 后面跟上文件路径。-R:是指用到目录里所有子目录和文件;777:是指所有用户都拥有的最高权限。

2024-01-17 14:15:43 583

原创 cmake 制作库文件

【代码】cmake 制作库文件。

2024-01-16 21:12:31 326

原创 cmake 指定头文件命令

【代码】cmake 指定头文件命令。

2024-01-16 21:11:21 396

原创 camke搜索文件命令

set(a a b) # 将a 和 b 合并保存在 a 中。变量值合并(a, b)

2024-01-16 21:05:47 364

原创 Cmake总结

在执行cmake 命令执行的时候指定 cmake CMakeLists.txt -DCMAKE_CXX_STANDARD=11 (-DCMAKE_CXX_STANDARD=11 指定 c++ 标准为 11)在编写 c++ 程序的时候,可能会用到C++11、C++14、C++17、C++20 等新特性,那么就需要在编译的时候在编译命令中指定出要使用哪个标准(默认使用C++98)set:设置可执行文件的输出路径(也可对生成的动态库指定路经)注释块: #[[ 注释的内容 ]]

2024-01-12 21:09:02 434

原创 查看Linux架构命令

【代码】查看Linux架构命令。

2024-01-11 15:30:07 373

原创 CUDA中的原子操作

原子函数对驻留在全局或共享内存中的一个 32 位或 64 位字执行读-修改-写原子操作。例如,atomicAdd() 在全局或共享内存中的某个地址读取一个字,向其中加一个数字,然后将结果写回同一地址。该操作是原子的,因为它保证在不受其他线程干扰的情况下执行。换句话说,在操作完成之前,没有其他线程可以访问该地址。原子函数不充当内存栅栏,也不意味着内存操作的同步或排序约束(有关内存栅栏的更多详细信息,请参阅内存栅栏函数)。原子函数只能在设备函数中使用。

2023-12-26 19:37:23 787

原创 python 总结

当在Python中使用NumPy库时,@操作符用于对两个数组执行矩阵乘法。

2023-12-05 15:44:06 351

原创 Pytorch 实现 tensor 序列化和并行化

torch.load() 可通过参数 map_location 动态地进行内存重映射,使其能从不动设备中读取文件。返回不同地址中的 storage,或着返回 None (此时地址可以通过默认方法进行解析)。如果这个参数是字典的话,意味着其是从文件的地址标记到当前系统的地址标记的映射。默认情况下,location tags 中 "cpu"对应 host tensors,‘cuda:device_id’ (e.g.‘cuda:2’) 对应 cuda tensors。并行化 Parallelism。

2023-12-03 22:59:21 494

原创 Pytorch 随机抽样

如果输入 input 是一个向量,输出 out 也是一个相同长度 num_samples 的向量。参数 num_samples 必须小于 input 长度(即,input 的列数,如果是 input 是一个矩阵)。设定随机生成器状态,参数:new_state(torch.ByteTensor) - 期望的状态。如果输入 input 是有 m 行的矩阵,输出 out 是形如 m×n 的矩阵。从指定的 input 张量的行中抽取指定 num_samples 个样本。与上面函数类似,所有抽取的样本共享标准差。

2023-12-03 22:27:36 453 1

原创 pytorch 的tensor的索引,切片,连接,换位 Indexing, Slicing,Joining, Mutating Ops

如果输入是形如(A * 1 * B * 1 * C * 1 * D),那么输出形状就为:(A * B * C * D),当指定 dim 时,那么挤压操作只在给定维度上。返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。在给定的维度上对输入的张量序列 seq 进行拼接操作。如果输入 input 有 n 维,则输出的索引张量 output 的形状为 z * n,其中 z 是输入张量 input 中所有非零元素的个数。返回一个新张量,对输入的指定位置插入维度 1。将输入张量形状中的1去除并返回。

2023-12-03 13:40:13 952 1

原创 Pytorch 创建 tensor 操作

将 numpy.ndarray 转换为 pytorch 的Tensor。返回的张量 tensor 和 numpy 的 ndarray 共享同一内存空间。修改一个会导致梁一个也被修改。返回的张量不能改变大小。torch.linspace返回一个1维张量,包含在 start 和 end 上均匀间隔的 step 个点,输出1维张量的长度为 steps。上以对数刻度均匀间隔的 step 个点,输出1维张量的长度为 steps。torch.logspace返回一个1维张量,包含在 10。

2023-12-02 23:41:20 383 1

原创 Pytorch 张量 Tensors 操作

判断 obj 是否是一个 pytorch storage 对象。判断 obj 是否是一个 pytorch 张量。

2023-12-02 22:46:42 367 1

原创 torch.nn.MultiheadAttention的使用和参数解析

整体称为一个单注意力头,因为运算结束后只对每个输入产生一个输出结果,一般在网络中,输出可以被称为网络提取的特征,那我们肯定希望提取多种特征,[ 比如说我输入是一个修狗狗图片的向量序列,我肯定希望网络提取到特征有形状、颜色、纹理等等,所以单次注意肯定是不够的。翻译一下就是说,如果输入不是以batch形式的,query的形状就是,是目标序列的长度,就是query embedding的维度,也就是输入词向量被变换成q后,q的维度,这个注释说是embed_dim, 说明输入词向量和q维度一致;

2023-11-30 18:45:22 3035

原创 Python 版本问题整理

【代码】Python 版本问题整理。

2023-11-30 12:03:41 427

原创 Python 安装

【代码】Python 安装。

2023-11-29 16:09:28 351 1

空空如也

空空如也

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

TA关注的人

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