project2
配环境之pytorch下载和安装
哈哈
安装pytorch
(我创立了一个python3.9的环境叫p3.9g),接下来我们要在该环境中配置pytorch
在pytorch官网中可以找到对应CUDA10.0版本的pytorch安装命令
然后在终端直接输入该命令conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch
就可以。但是你会发现速度极慢,上图!这大概是我等了一个多小时的结果吧。
解决的办法就是直接去官网手动下载包了。注意要下载两个,分别是torch和torchvision。文件名写出了pytorch版本号和python版本号。
pytorch 离线.whl包官方下载地址:
https://download.pytorch.org/whl/torch_stable.html
记录一下安装Pytorch和cuda的踩坑经历 - 知乎 (zhihu.com)
这里顺便解释一下上图中文件的命名规则(自己推测的,如有不对欢迎纠正)。
- 最前面的’cu113’指的是支持11.3版本的cuda,同理’cu101’就是支持10.3版本的cuda。看到的最低的cuda版本是10.0,低于10.0版本cuda对应的pytorch安装包可能存放在其他地方,或者不提供支持了。如果是’cpu’则说明是cpu版本的包,不适配gpu。
- cuda版本号后的’/‘和’%’之间的是包的内容和版本,比如torch-1.10.0就是1.10.0版本的torch,这个很容易理解。
- 再往后的’2B’没猜出来是什么意思,可能是to B?
- 紧接着的’cu113’和前面是一个意思,表示支持的cuda版本,’cp3x’则表示支持的Python版本是3.x,如果是由于我安装的是Python 3.9.5,因此我选择的是cp39的包。
- 最后面的’Linux_x86_64’和’win_amd64’就很简单了,Linux版本就选前一个,Windows版本就选后一个,MacOS的就不知道了,可能也是后一个(不负责任的瞎猜)。
下载到本地后上传至服务器。然后在虚拟环境中进入到存放目录,分别pip install一下就可
nohup
(7条消息) ubuntu nohup命令_selous的博客-CSDN博客_用nohuo命令跑的代码速度很慢
CUDA_VISIBLE_DEVICES=0 nohup python -u main.py>log.txt 2>&1 &
#注意CUDA_VISIBLE_DEVICES在nohup前面
配环境之cuda、cudnn下载和安装
哈哈
cuda
选好版本(重要
综合考虑,谋定而后动
与显卡驱动
命令行输入nvidia-smi
显示Driver Version是驱动的版本,CUDA Version是当前驱动支持的最高版本
之后可以根据英伟达官网上的对照表选择CUDA的版本 【CUDA Toolkit Documentation】

与pytorch
版本对照图如下:
一般来说高版本的pytorch能兼容低版本cuda
再通俗点,就是pytorch版本选高了没事;但是低了,就只能再降低cuda版本了
ps:官方推荐的cuda版本为10.2和11.3,这两种 cuda 支持大多数的 pytorch 版本。
不过一般人都是根据cuda装pytorch,谁没事指定pytorch版本反装cuda啊,哦是复现baseline啊,那没事了
进入虚拟环境中
(我创立了一个python3.9的环境叫p3.9g),接下来我们要在该环境中配置pytorch
下载与安装
将下载好的文件执行以下操作:
先将安装包复制到服务器上,能找得到的地方。
然后进入到该目录下,使用chmod 755 cuda_10.2.89_440.33.01_linux.run更改文件的执行权限。
由于我们不是管理员用户,因此无法使用sudo安装,因此直接执行以下命令即可 sh cuda_10.2.89_440.33.01_linux.run
命令行输入 nvcc -V
查看cuda版本,如果符合预期,则安装成功
非root用户与软连接切换
cudnn
很简单
1.安装对应的cudnn。根据cuda版本选择对应的cudnn进行安装
2.将解压后的lib和include这两个目录拷贝到cuda的对应bin和include目录下,即是所谓插入式设计,把cuDNN数据库添加CUDA里,cuDNN是CUDA的扩展计算库,不会对CUDA造成其他影响。
cp -r ./lib/* /homeB/liangxiaoyu/.local/cuda-11.3/bin/
cp -r ./include/* /homeB/liangxiaoyu/.local/cuda-11.3/include/
配环境之conda下载和安装
隔了好久,太难写了
anaconda
安装
直接下载可能下载失败,或者太慢了,所以选择本地下载后上传
1.下载安装包
可以选择在官网下载,上传到服务器
2.安装
1 | bash /public/software/Anaconda3-2022.10-Linux-x86_64.sh |
一路enter+yes,接受licence、指定安装路径和init之后安装完成
anaconda在linux下默认安装在文件夹./anaconda3 ,如果安装过程中出现任何问题,删除anaconda3文件夹即可重新开始
简单使用conda
创建环境
删除环境
环境列表
设置默认环境
安装完conda后,进入终端显示(base)
方法一:
每次在命令行通过conda deactivate
退出base环境回到系统自带的环境
方法二:
通过配置auto_activate_base关闭自动进入conda基础环境:
conda config --set auto_activate_base false
想要重新开启就设为true就行了
conda config --set auto_activate_base true
修改下载源
复制环境依赖
Linux-Anaconda安装和虚拟环境配置 - 知乎 (zhihu.com)
这个方法一般是在复现相同环境时使用,一键快捷省心。例如更换服务器、复现git开源工程等。
①conda
conda导出已有的环境,保存在myenv.yaml文件中。
conda env export > myenv.yaml
根据yaml文件导入并安装环境
conda env create -f myenv.yaml
注:.yaml文件移植过来的环境只是原来环境里用conda install命令安装的包,pip安装的库可能不会移植过来,需要重新安装。
②pip
把环境中的依赖写入 requirement.txt 中
pip freeze >requirements.txt
安装环境依赖
pip install -r requirement.txt
hexotips
1.hexo new
当我们使用命令 hexo new "title"
创建文章时,Hexo 会根据 /scaffolds/post.md
对新文章进行初始化
换言之,/scaffolds/post.md
就是新文章的 模板,所以我们可以修改它来适应自己的写作习惯
每次生成后头部
--- title: {{ title }} date: {{ date }} tags: categories: ---
categories
与tags
分别是分类与标签
以tags为例语法是tags: [tag1,tag2,tag3...tagn]
categories: category
分类和标签需要区别一下,分类具有顺序性和层次性;而标签没有顺序和层次。
2.精简首页显示
在利用 Hexo 框架搭建的博客网站中,首页会显示文章的内容,且默认显示文章的全部内容
如果当文章太长的时候就会显得十分冗余,所以我们有必要对其进行精简
这时,我们只需在文章中使用 <!--more-->
标志即可,表示只会显示标志前面的内容
3.在Hexo中对文章md文件分类
https://blog.csdn.net/maosidiaoxian/article/details/85220394
4.others
https://blog.csdn.net/sinat_37781304/article/details/82729029
next
https://tding.top/archives/42c38b10.html
https://tding.top/archives/2bd6d82.html
https://www.cnblogs.com/wsmrzx/p/9439470.html
git
https://blog.csdn.net/blbyu/article/details/126700179
https://blog.csdn.net/blbyu/article/details/126704948
5.yufa
https://blog.csdn.net/Sakura_Logic/article/details/103980420
https://www.cnblogs.com/wsmrzx/p/9439490.html
高级
https://blog.csdn.net/qq_33699981/article/details/72716951
1.添加Github丝带或者角标-ok
打开themes/next/layout/_layout.swig
文件,在<header></header>
之前添加代码,并把href
改为你的博客地址
https://zhuanlan.zhihu.com/p/409427566
2.添加RSS
5. 修改文章内链接文本样式
7. 在每篇文章末尾统一添加“本文结束”标记
9. 博文压缩
11. 侧边栏社交小图标设置ok
https://blog.csdn.net/wangqingchuan92/article/details/116223408
通过修改enable
、icons_only
实现对图标的以及图标旁标签文字的显示及隐藏功能,修改transition
实现是否显示过渡效果功能。
12. 主页文章添加阴影效果
13. 在网站底部加上访问量ok
18. 实现统计功能
22. 隐藏网页底部powered By Hexo / 强力驱动
.
24. 文章加密访问
26. 博文置顶
27. 修改字体大小
https://blog.csdn.net/Z_Z_W_/article/details/97617436
建立阅读排行榜
新建一个阅读排行榜界面,用于显示本站文章的阅读排行榜,基于lencloud进行统计
https://zhuanlan.zhihu.com/p/55796365
Valine是国内的一款极简风格的评论软件,首先进入LeanCloud注册,然后在控制台随便创建一个项目后,获取密钥:
7. 添加lazyload
lazylod可以在用户不查看的时候,不加载相关部分,从而提升网站加载速度,设置方法同上:
9.添加站内搜索
Next集成了站内搜索功能,可先安装依赖:
10.添加百度谷歌收录
要想让我们的博客被百度、谷歌等搜索引擎索引到,需要提交我们的域名,谷歌很快就能收录,但是百度要一两个月,具体步骤如下:
13.增加文章置顶功能
修改 hero-generator-index
插件,把文件:node_modules/hexo-generator-index/lib/generator.js
内的代码替换为:
https://blog.csdn.net/weixin_42608550/article/details/87876529
评论系统
NexT原生支持多说、Disqus、hypercomments等多种评论系统。我选择了Disqus。
方法也非常简单。直接去Disqus注册,注册完了在配置的时候会给你一个名为shortname的ID,将这个ID填在配置文件里即可。
评论系统
因为多说已经停止服务了,最开始看到有人说Disqus得翻墙,就选了一个韩国的评论服务,叫来必力,但事实证明墙外就没有稳定的服务,在我挂VPN的情况下也要加载好半天,后来就还是换成了Disqus,具体配置方法看前文。
统计文章字数和阅读时间
NexT 主题默认已经集成了文章【字数统计】、【阅读时长】统计功能,如果我们需要使用,只需要在主题配置文件 _config.yml 中打开 wordcount 统计功能即可。如下所示:
hexo怎么插入图片
两种解决博客种图片问题的方法,个人推荐第二种~
如何开启分布式
一个卡跑的好慢,看着剩下的7张3090陷入沉思,计算力就是财富,对于一个刚入门的小白,又该如何利用分布式来加速你的训练呢?
本教程使用DDP框架
想使用其他框架比如DP,multiprossing之类的可以去其他地方找资料
介绍
为什么使用分布式训练
第一种是模型在一块GPU上放不下,两块或多块GPU上就能运行完整的模型(如早期的AlexNet)
第二种是多块GPU并行计算可以达到加速训练的效果
不同方式
nn.DataParallel单进程控制多 GPU
torch.distributed 加速并行训练
使用 torch.multiprocessing 取代启动器
使用 apex 再加速
- DataParallel是单进程多线程的,仅仅能工作在单机中。而DistributedDataParallel是多进程的,可以工作在单机或多机器中。
- DataParallel通常会慢于DistributedDataParallel。所以目前主流的方法是DistributedDataParallel。
ddp使用方法
启动
pytorch 为我们提供了 torch.distributed.launch 启动器,用于在命令行分布式地执行 python 文件。
虽然现在建议用run。但是好多论文sota都用的launch,也不是不能用
1 | CUDA_VISIBLE_DEVICES=0,1,2 python -m torch.distributed.launch --nproc_per_node=3 main.py |
手动使用 torch.multiprocessing 进行多进程控制。绕开 torch.distributed.launch 自动控制开启和退出进程的一些小毛病
流程
启动器会将当前进程的index 参数传递给程序
使用 init_process_group 设置GPU 之间通信使用的后端和端口
包装数据集
包装模型
1 | optimizer |
vscode在远程服务器上debug
新人如何debug呢,本地我们都会,那么vscode远程到服务器之后怎么办呢?
print大法好(x
vscode和pycharm,Jupyter Notebook不一样,区别我们以后再说
vscode他的debug需要我们配置一些东西,不难,但是网上没有很系统的教程
下面请看我一点一点讲
两种方式
A.下载包pdb(python debugger简称)
安装ipdb:pip install ipdb
在xxx.py文件中在需要中断的地方插入代码进行debug
个人并不建议使用,感觉很麻烦,而且破坏了程序源代码的完整性,改来改去就晕了。
B.使用vscode本身的debug(推荐)
使用vscode进行一些json文件设置,让我们在远程连接服务器与在本地上一样可以轻松调试
1.生成配置文件
launch.json文件存放在你项目的根目录(workspace)的.vscode文件夹中
我们先在你工作区下找到.vscode文件夹,这里往往会有一个叫launch.json的文件
没有的话点击debug创建一个,教程如下
参考:https://blog.csdn.net/qq_16587307/article/details/106593867
2.编写配置文件
强烈建议去看官方文档https://code.visualstudio.com/docs/editor/debugging
编写配置文件的一些参数和注释,并在后面给出我的配置文件供参考
必须参数
- “type”:是你用的debugger类型。我们这里用python调试器
- “request:”调试的模式。launch调试新启动进程,attach调试运行中进程。我们这里用launch
- “name”:是你配置的名字,随便取。run debug的时候点你配置文件的名字
可选参数(通用)
presentation…
可选参数(大部分调试器支持)
”program:“ 在启动调试器的时候选择要执行的文件地址
“args”:传递给program调试的参数,和命令行输入效果是一样的,搭配argparse使用
”env“环境变量,分布式的时候用哪个卡
”cwd“:工作目录
”port“:当attach一个正在运行的程序时的端口号
“console“:使用哪种控制台,例如integratedTerminal, or externalTerminal
变量替换
**${workspaceFolder}:**给出工作区(workspace)文件夹的根路径
${file}: 在活动编辑器中打开的文件
${env:name}: ’Name‘的环境变量
3.我的配置文件
照抄即可,只需替换一下 “python”: 用你python解释器位置,剩下几乎不用改
1 | { |
4.然后运行就可以愉快debug了
完结撒花,有不懂的欢迎评论交流
vscode远程连接服务器
vscode连接远程服务器
ssh-remote
vscode下载ssh插件并连接的教程已经有很多了,例如:
https://zhuanlan.zhihu.com/p/470592903
但是一般会在安装过程遇到问题
问题:
vscode卡在Setting up SSH Host XX:Copying VS Code Server to host with scp
本以为等一下就好了,结果十几分钟还没好
原因:
远程服务器不能连外网,home/.vscode-server/bin/commit_id/vscode-servlet.tar.gz 没有下载下来(注意你路径,一般是在你自己根目录下)
commit_id是一串数字,很重要,先记下来之后要用
解决办法:
我用自己电脑手动下载,然后再上传到服务器
1.进行下载vscode-servlet.tar.gz。通过下面的连接进行下载
1 | https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable |
注意把:${commit_id}替换成你的id
比如
1 | https://update.code.visualstudio.com/commit:123456789/server-linux-x64/stable |
3.运行下面这行命令。把 /home/.vscode-server/bin目录下的东西删除干净
(注意你路径,一般是在你自己根目录下)
1 | rm /home/.vscode-server/bin/* -rf |
4.将下载好的压缩包vscode-server-linux-x64.tar.gz放在 /home/.vscode-server/bin目录下
5.运行下面这三行命令
1 | cd /home/.vscode-server/bin |
6.重新打开vscode就ok了~