Q1:使用nvidia-smi看不到任务进程,想要结束某个进程怎么办?
可以使用一下来查看进程,使用通道过滤,选择python的程序。之后使用 kill -9 ID,即可杀掉程序。
ps aux|grep root|grep python
批量打印进程ID可以使用如下指令,在后面加上|sh即可全部杀死。不过要小心哦。
ps aux|grep root|grep python|grep -v grep| awk '{print "kill -9 "$2}'
ps aux|grep root|grep python|grep -v grep| awk '{print "kill -9 "$2}'|sh
Q2:出现报错 RuntimeError: DataLoader worker (pid 27097) is killed by signal: Killed. 或者Killed
RuntimeError: DataLoader worker (pid 27097) is killed by signal: Killed.
Killed
这种报错是因为内存给小了,原来内存也是会影响DataLoader的,需要调小num_workers,或者加大内存。
Q3:直接使用python train.py 跑代码必须SSH一直连接这服务器,这时候如果出现网络波动或者网络断连就会直接把程序给杀掉。
1、使用.sh文件进行调用可以进行解决,但是有些服务器并不会给你执行sh文件的权限。
2、此时可以使用一些小工具。这里请教了kunyang,发现tmux是一个很好用的工具,以下是一些常用指令,可能可以帮助到大家。
首先是安装,使用apt-get install tmux即可完成安装。
- 创建一个新的会话(session),-s 后面是该会话的名字。
tmux new -s mytmux
- 使用ctrl+B组合键可以发出一些指令,按完ctrl+B后
按C,可以在新建一个窗口,在最下面可以看到所有的窗口。
按0 1 2 进行窗口切换,星号在哪个窗口代表现在调用的哪个。
按D,退出到命令行,还可以回来 - 查看现有的tmux
tmux ls
- 回到之前的tmux
tmux a -t mytmux
- 关闭某个不相应的窗口
tmux kill-window -t 6
- 彻底关闭窗口,会让你二次确认
ctrl+B &
这样就就再也不怕断网之类的事情发生了。
Q4:校园Linux登录校园网,以及注销校园网(防止挖矿病毒)
curl 'http://10.10.43.3' --data "DDDDD=student_id&upass=password&0MKKey="
curl http://10.10.43.3/F.htm
Q5:关于cudnn,对cudnn的解释网上已经有很多了。基本上就是说默认是False,如果网络的输入数据维度或类型上变化不大设置成True,在一起开始会花费一些时间而后面会降低时间,提高速度。但我想说的是,我使用这行代码后跑程序需要的显存出现了波动。之前跑程序我需要18G的显存,但使用这行后一开始只需要16G,之后又需要20G。具体原理不太清楚。
torch.backends.cudnn.benchmark = True
Q6:关于保存和加载模型。
我们可以使用torch.save来保存模型。而在加载时不能直接使用torch.load()来使用,torch.load()仅读取了模型参数。应该先使用自己定义得方法,或者其它的办法先读取到基本模型架构,再使用load_state_dict来加载参数。
torch.save(net.state_dict(), './model.pth')
net=load_model()
net.load_state_dict(torch.load(args.resume))
Q7:出现报错 Process finished with exit code 137, 程序退出
大概率是因为内存不足报的错误,我是在存储一个中间结果时报错的,每一轮循环我都让一个tensor变得更大,以至于最后出现了137错误。这个Killed错误类似,因此我进行了分阶段的保存避免了报错,或者在申请服务器资源时多申请写内存也可以解决。
Q8:数据集太大,使用FTP上传到服务器太慢,使用百度网盘就行数据下载。
居家之后,链接VPN进行文件得传递速度太慢,因此使用了百度网盘的方式,首先需要安装两个库,requests和bypy。
pip install requests -i https://pypi.doubanio.com/simple
pip install bypy -i https://pypi.doubanio.com/simple
之后在浏览器端登陆好百度网盘。然后使用指令得到一个网页连接,复制到浏览器打开,进行授权操作,并得到授权码。
bypy info
最后将授权码复制到终端,完成授权即可。
之后在百度网盘中会多出来一个应用数据文件夹,其中有一个bypy的文件,只要将需要下载的文件放入bypy中,之后在终端使用命令即可完成文件传输
bypy downdir -v # 下载bypy中所有文件
bypy downdir dirname -v # 下载指定文件
bypy upload -v # 上传文件
bypy -c # 取消授权
bypy list # 显示bypy中文件列表
Q9:Linux下执行.sh命令发现Permission denied。
chmod u+x *.sh
再次执行命令就行了。
Q10:使用tar解压文件
tar -xzvf file.tar.gz -C ./xxx # 解压gar.gz包到指定路径
Q11: ln 建立软链接。我们可以使用软链接将需要的数据集连接到项目目录中的data。
ln -s sours_file_root target_file_root # 建立软链接
rm -rf target_file_root # 删除软链接,但不删除数据
rm -rf target_file_root/ # 既删除软链接,也会把之前源文件删掉