- 博客(110)
- 收藏
- 关注
原创 deepspeed多机多卡训练
注意,多机多卡训练的容器启动命令里必须有--network=host参数,如下。2.1每个机器上环境,代码,需一样,每个机器都得用以下脚本开启训练。2.2只有在主机的服务器终端显示训练进度条,loss,其余不显示。
2024-12-25 00:22:59
443
原创 VS code禁止自动更新版本
安装vscode,设置禁止自动更新版本,但是你在打开vscode设置的时候,已经给你自动更新了。1.查看vscode版本:左上角 Help -> About。解决方法:安装的时候断网。2.禁止自动更新设置。
2024-12-16 15:47:16
1384
原创 sd1.5/sdxl的推理,训练
如下图第二步所示,右边为schedule(调度器),调度器根据unet的预测噪声noise,当前时刻t,latent,计算出前一时刻的latent。根据unet的降噪步数,即num_inference_steps生成一系列timesteps,每一个降噪步数,对应一个timestep。在CrossAttention中,Latent Feature充当Q,Prompt充当K,V,计算交叉注意力。如下图第二步所示,左边为unet中输入lantent,prompt,t,输出为当前时刻的预测噪声noise。
2024-11-12 17:46:51
577
原创 logger输出
在分布式训练的环境中,每个进程的标准输出(stdout)并不一定与启动命令的终端相连。这意味着 `print` 函数的输出很可能会丢失,你不会在终端中看到它。,因此我们选择了logger。
2024-10-14 17:28:48
300
原创 VSCode连接docker
为了防止每次打开容器都要输入此指令,我们直接在 ~/.bashrc文件最后一行添加sshd启动命令即可。查看— 命令面板—python解释器(Python: Select Interpreter)打开终端,会自动执行 ~/.bashrc,我们也可以在~/.bashrc文件中配置代理。有时候选择环境中的解释器的时候老是报错,检查一下,创建容器的时候,NPU是否挂载成功。此报错在vscode界面右下角出现,点进去,看报错日志,才会看到。我们对报错进行修改,做了一些操作之后,要重启ssh服务。
2024-09-08 15:17:59
1054
原创 vscode从本地安装插件
2. 点击左侧菜单中的“扩展”(或按Ctrl+Shift+X)。3. 点击“更多操作”(三个点)> “从VSIX安装”。4. 选择下载的.vsix文件。5. 点击“安装”即可安装插件。1. 打开VSCode。
2024-09-07 20:43:13
3978
原创 pycharm安装本地插件
3. 点击小齿轮选择nstall plugin from disk(从硬盘下载),选择刚刚下载的zip文件就可以了。1.下载插件的zip文件到本地。4.重启pycharm。
2024-08-31 17:01:46
1649
原创 模型推理时间计算,模型精度,推理batch size设置,取模型的权重,调用模型中的某个函数,版本号的对比
模型推理之前要先进行warm up预热。参考:Chinese-CLIP中的代码。
2024-08-08 20:24:29
766
原创 SDXL总结
diffusers库中的SDXL代码pipelines:是一个,包括Base模型和Refiner模型。其中,具备文生图(txt2img)、图生图(img2img)、图像inpainting等能力。在Base模型之后,级联了Refiner模型,。
2024-08-04 20:00:15
1623
原创 Stable-Diffusion1.5
由于CLIP训练时所采用的最大Token数是77,所以在SD模型进行前向推理时,当输入Prompt的Token数量超过77时,将通过Clip操作拉回77x768,而如果Token数不足77则会使用padding操作得到77x768。
2024-08-04 10:00:00
2237
3
原创 Cmake的使用
一个c++工程可能会涉及到很多的基础库,但是c++不像python一样可以直接import,因此引入了Cmake,将多个库链接起来。参考:CMake系列讲解 - 总目录(由浅入深,实例讲解)_cmake 项目目录-优快云博客 【C++】为什么需要CMake?-优快云博客使用等编译工具,从源码生成最终的可执行文件一般有这几步:预处理(Preprocess)、编译(Compile)、汇编(assemble)、链接(link)预处理: 处理一些#号定义的命令或语句(如#define、#inclu
2024-05-01 18:17:39
666
原创 Visual Studio Code使用
首先生成执行文件(见第2节C++的运行),然后将launch.json调试文件中的program路径直接改为执行文件的路径,如下,选择对应的调试名称,点击开始调试。先生成launch.json文件,点击右下角蓝色的添加配置,选择第二行C/C++: (gdb) 启动,生成c++的launch.json调试文件,如下图。然后点击绿色调试按钮,开始调试,注意要点到要调试的文件界面,如调试main.cpp文件,在主界面要点到main.cpp文件,如下图所示。生成可执行文件后,将可执行文件的路径输入终端,即可执行。
2024-04-22 16:26:30
1859
原创 python跨文件夹调用
如图所示,我们要在bin文件夹下的run_patchcore.py文件中调用src/patchcore文件夹下的backbone.py, common.py等文件。方法1:将patchcore的上一层目录src添加到环境变量中。方法2:将patchcore文件夹复制到bin中。
2024-03-06 21:12:45
783
1
原创 shell脚本中的控制语句 if,for,while,以及输入read
,每一个模式匹配必须以右括号“)”结束。,中括号和条件判断式之间必须有空格。”表示命令序列结束,相当于。default,表示其他情况。)”表示默认模式,相当于。
2024-02-04 10:15:00
459
原创 shell脚本中的变量$,运算符,自定义函数
(1)定义变量:变量名=变量值,注意,=号前后不能有空格,如有空格,会当成指令(2)撤销变量:unset 变量名(3)声明局部变量:readonly 变量名=变量值,注意:局部变量不能 unset(4) export 变量名:可把变量提升为全局环境变量变量定义规则(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。(2)等号两侧不能有空格(3)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。
2024-02-03 22:26:14
665
原创 Vim编辑器
文件编辑分为一般模式 与编辑模式。打开文件为一般模式,按‘i’进入编辑模式,窗口下面出现“插入”;按esc切换一般模式。常见的有 :wq 保存并退出 :w 保存 :q 退出。主要操作有保存,退出,删除,复制,粘贴等。
2024-02-02 22:54:49
287
原创 Linux文件结构
所有Linux系统的文件结构都是一样的,区别于win系统的c盘,d盘,他只有一个根目录“/”,下面的文件夹结构基本是一样的,如下,文件夹有“箭头”代表的是软链接,即该文件夹的位置不在此,右键可查看其位置。opt:option,系统预留的空间,我们在系统中装的客户端都在此,如我们下载的谷歌浏览器。home:用户的主目录,如我们自己rui,自己存放数据的文件夹,我们新建的文件夹都在。lib:library,存放系统库文件,后面的数字对应不同位操作系统独有的库文件。etc: 系统需要的配置文件。
2024-02-02 10:15:00
290
原创 C++内存管理
注意,返回的指针的类型是。(Memory Allocation的缩写)用于在堆上动态分配一块指定大小的内存空间。是C语言中用于动态内存分配和释放的函数。虽然C++提供了更先进的内存管理方式,如。参数表示要分配的字节数,函数返回一个指向分。运算符,但是仍然可以在C++中使用。,因此需要进行强制类型转换。参数是要释放的内存块的指针。
2024-01-11 17:10:42
423
原创 右值引用,左值引用
表示,c++11后出现的,如表达式,整形1,2...只能出现在operator= 的右侧,用&&左值引用就为常见的引用,本文主要讲右值引用。可以出现在operator= 的左侧。这个方法将左值参数无条件的转换为右值。
2024-01-10 22:39:05
391
原创 C++11新特性(也称c++2.0)
注:visual studio要手动打开c++11,在“解决方案资源管理器”右键自己的项目, 如“侯捷C++”(是总项目,不是项目中的某一头文件或源文件),按一下操作。【右击项目】–【选择属性】–【C/C++】–【语言】–【C++语言标准】,选择想要的标准即可。老版的话会输出199711,支持c++11的话会输出201103。visual studio2019以上才支持C++11(好像是)
2024-01-08 16:12:49
512
原创 适配器Adapters
stack,queue他们两的底层结构都为deque,deque有好多功能,而stack,queue并不全需要这些功能,而且有些用法也会改变,如图中倒数第二行,deque中用的是push_back(),而stack,queue用的是push(),因此就需要对应的适配器对deque进行改造来实现stack,queue。别的适配器现在看不懂,以后再看。主要是对底层的东西进行改造。
2024-01-08 13:19:43
377
原创 哈希表(Hash table)
hashtable元素编号除以篮子个数的余数就是要放在第几个篮子中,很可能出现编号不同的元素的余数相同,放在同一个篮子中。如果发生了碰撞,就让它变成一个链表,放在一起。如果你元素个数比篮子数还多,就危险了,需要打散链表。篮子个数扩充规则,就是原始个数的二倍周围最近的一个质数。可以使用hashtable的迭代器改变元素的value,但不能改变元素的key。c++标准库使用的是unordered_set,unordered_map,multiset,multimap代替右边的。这块学的不是很清楚,后面再看。
2024-01-07 17:22:48
413
原创 分配器allocators
会省略不写,源代码有默认的)事实上,分配器是以 ::operator new 与 ::operator delete完成allocate()和deallocate(),即内存的分配与回收。而 ::operator new()的源码是以malloc分配内存的,即当我们需要size大小的空间时,malloc()分配下图所示空间。分配器:负责空间的配置与管理(写在容器类型的后面,如右图,作用是帮容器分配内存,一般都。分配size大小的空间,如上图,空间前面和末尾都会加额外的东西,内存管理会讲。
2024-01-05 16:47:04
439
原创 c++的一些输出cout,printf,fprintf,snprintf
C++中推荐cout输出, printf,fprintf,snprintf是c的标准库函数,c++继承了他。
2024-01-02 15:06:12
469
原创 异常检测(无监督,生成模型)—DRÆM – A discriminatively trained reconstruction embedding for surfaceanomaly detect
注:因为模型分为重构模块和判别模块,比较大,测试时将batch_size设为1cuda内存都不够,在测试代码中加 with torch.no_grad(): 即可。
2023-11-24 10:06:01
1443
原创 常见的内置方法:__call__,__getitem__,__iter__,__next__
在创建好一个实例后,直接调用一个实例会报错。但使用__call__后,可以让这个实例可以像方法一样被调用(就是一个函数后面加个括号的函数调用形式)
2023-11-04 22:44:08
278
原创 python中函数,装饰器,迭代器,生成器
1.函数可以作为参数进行传递2.函数可以作为返回值进行返回3.函数名称可以当成变量一样进行赋值操作。
2023-10-30 22:37:50
197
1
原创 global,nonlocal。globals(),locals()。filter,map
在局部,引入全局变量,使得局部变量可以修改全局变量。在局部,引入外层的局部变量。
2023-10-30 20:16:50
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人