- 博客(96)
- 收藏
- 关注
原创 esp8266调试记录
使用笔记本电脑的USB接口为NodeMCU开发板供电,你需要确保电压和电流在安全范围内。虽然NodeMCU的输入输出电压限制为3.3V,但是大多数开发板都内置了电压调节器,可以从5V的USB电源降压到3.3V。因此,通常情况下,可以直接使用笔记本电脑的USB接口为NodeMCU开发板供电。
2024-03-17 14:55:44
462
原创 torch.compile用法
torch.compile 通过 JIT 将 PyTorch 代码编译成优化的内核,使 PyTorch 代码运行得更快。加速主要来自减少了 Python 开销和 GPU 读/写,因此观察到的加速可能因模型架构和批量大小等因素而异。例如,如果一个模型的架构很简单并且数据量很大,那么瓶颈将是 GPU 计算并且观察到的加速可能不那么显着。要求torch>2.0,还需要安装torchtriton。
2024-02-21 20:14:26
3338
原创 深度学习知识
在 While 处判断需要继续生成,在 Attention 中计算出token对应的 CacheKV 信息存储下来,并拼接上所有的历史 CacheKV 信息进行计算,最后采样出来下一个 token。(CacheKV 实际上记录的是 Transformer 中 Attention 模块中 Key 和 Value 的值),在计算完 logits 之后会接一个Sampling 采样模块,采样出来第一个生成的 token,并将这个 token 和 CacheKV 作为 generation阶段的输入,
2024-01-26 15:41:27
984
原创 大模型学习
其中b是batch,s是序列长度,a是注意力头数,l是transformer层数,h指隐藏层维度。优化器状态占用的显存大小也是一样,与优化器类型有关,与模型参数量有关,但与输入数据的大小无关。计算量和参数量的关系,近似认为,在一次前向传递中,对于每个token,每个模型参数,需要进行2次浮点数运算,即一次乘法法运算和一次加法运算。,b是batch,l是transformer层数,h指隐藏层维度,s是输入序列长度,n是输出序列长度,4=2*2,k和v的cache,每个cache fp16存储,占用2B。
2024-01-08 16:39:47
3512
原创 CMakeLists中下载github仓库代码和设置代理
在编译大型项目时,往往会遇到在CMakeLists.txt文件中下载github依赖仓库的现象。但是因为墙的原因,直接下载不了代码导致编译报错。可以通过设置代理解决。
2023-12-07 11:36:19
2313
原创 HuggingFace的transfomers库
可以通过print(enc)看到,enc是GPT2TokenizerFast类型,搜索类型的定义,在python安装包的transformers/models/gpt2/tokenization_gpt2_fast.py。我获取了opt类型的tokenizer,那么enc是什么类型呢?
2023-11-08 10:10:12
497
原创 fastapi教程
一个现代Python网络框架,可用于构建REST API。与知名的API标准完全兼容,即OpenAPI和JSON模式。FastAPI没有内置任何服务器应用程序。为了运行FastAPI应用程序,你需要一个名为的ASGI(Asynchronous Server Gateway Interface)服务器。符合 WSGI (Web Server Gateway Interface – 较早的标准)的Web服务器不适合 asyncio 应用。
2023-10-26 15:28:06
436
原创 asyncio教程
asyncio是一种使用单线程单进程的的方式实现并发的工具。asyncio提供的框架以事件循环(event loop)为中心,程序开启一个无限的循环,程序会把一些函数注册到事件循环上。当满足事件发生的时候,调用相应的协程函数。
2023-10-26 14:59:31
1072
原创 cuda知识
或者dpkg -l | grep cudnn。查看tensorrt版本:dpkg -l | grep TensorRT。查看cuda版本:`nvcc` --version,nvcc -V。
2023-09-21 17:21:22
2003
原创 tensorrt的安装和使用
提前安装好和,登录 NVIDIA 官方网站下载和主机 CUDA 版本适配的 TensorRT 压缩包即可。以 CUDA 版本是 10.2 为例,选择适配 CUDA 10.2 的。
2023-09-21 11:52:50
2767
原创 BeamSearch算法原理及代码解析
1.算法原理beam search有一个超参数beam_size,设为 k 。第一个时间步长,选取当前条件概率最大的 k 个词,当做候选输出序列的第一个词。之后的每个时间步长,基于上个步长的输出序列,挑选出所有组合中条件概率最大的 k 个,作为该时间步长下的候选输出序列。始终保持 k 个候选。最后从k 个候选中挑出最优的。2.中心思想假设有n句话,每句话的长度为T。encoder的输出shape为(n, T, hidden_dim),扩展成(n*beam_size, T, hidden_dim)
2022-04-07 19:52:51
3294
1
原创 MMdetection的Proposal原理和代码解析
一、算法原理接受N级score,bbox_pred,anchor和image_shape作为输入,通过anchor和框的偏移(bbox_pred)得到proposal,然后对这些proposal做NMS,最后选出前num个。二、执行步骤将每级score,bbox_pred,anchor按照score从大到小排序,并选择前num_pre个(一般为1000),共N*num_pre个。 通过anchor和框的偏移(bbox_pred)得到proposal 去除框大小为负数的框,并且对于每级的pro
2022-02-25 16:38:17
3667
原创 NMS源码解析
一、IOU的概念二、NMS的算法原理 选取该类box中scores最大的一个,记为box_best,并保留它 计算box_best与其余的box的IOU 如果其IOU>threshold了,就舍弃这个box(因为可能这两个box表示同一目标,保留分数高的哪一个) 从最后剩余的boxes中,再找出最大scores的哪一个,如此循环往复,直到没有box为止 三、源码解析# ---------------------------# 非极大值抑制(N..
2021-12-14 20:55:36
4547
原创 RoiAlign源码解析
/** 参数解释* bottom_data:输入的特征图数据,shape是(n,c,h,w)* bottom_rois:输入的roi数据,shape是(num_rois,5),第一维表示共有多少个rois,第二维是[batch_index,x1,y1,x2,y2],第一个值表示rois所在的batch_id,后四个是rois所在原图的坐标值,可以根据spatial_scale对应到特征图上* nthreads:等于roipooling后输出的size,即num_rois*channels*pool.
2021-12-14 17:44:40
2559
原创 Markdown学习笔记
一级标题二级标题三级标题四级标题文本正常加粗删除线标记倾斜列表无序列表无序列表无序列表(-,*, +都是无序列表)有序列表有序列表(通过1.还有空格表示)
2020-11-16 14:38:55
165
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人