Linux Shell 学习记录
发现要得心应手的使用Linux的话,学习Shell还是很有必要的,在此开启一个Shell的学习记录。
1.解压一个文件夹下的多个文件
想要把一个文件夹下的数据集压缩文件统一解压,并且分别解压放到数据集同名的文件夹下。
首先,解压文件的命令是:
1 | tar -xf name -C ./path |
-x : 解包
-f :文件名
-v :可视化,终端显示解压进度(每一个文件)数据集太大就不显示了
-c :打包,与-x相对
-z :有压缩性质的,若和x搭配就是解压,和c搭配就是压缩打包,使用了gzip
好了,下一步就是Shell命令了
1 | for i in *.tar; |
*.tar :筛选文件夹下的带.tar的文件
$ :关于文件名的需要带上 $
路径名带双引号
%%:双百分号去掉名称尾部的.tar,这一操作带上大括号
循环最后done,同时循环过程只有一个do
成功达成了我的目的了hh~
解压了十几分钟,下次在循环中加上print信息,好知道进度。
有两个数据集压缩文件下载有问题,查看其md5和:
1 | md5sum name |
和官网提供的md5一比对发现确实有问题,重新下载。
2023.5.25更新
2.pytorch使用指定GPU
模型训练无事可做,不如更新一下文档,记录一些学到的东西。
需要指定可使用的GPU时,除了在代码内使用
1 | import os |
这样的内容,记住这句话要在import torch前面。
还可以直接在终端加入环境变量:
1 | export CUDA_VISIBLE_DEVICES='2' |
还有在shell内使用:
1 | CUDA_VISIBLE_DEVICES='1,3' \ |
这一句要在python的前面加上,否则会没有用。同时要切记是CUDA_VISIBLE_DEVICES,而不是DEVICE,没有加这个S,就说为什么一直不起作用,一直使用了前两个GPU。
3.释放训练终端占用的显存
1 | ps -elf | grep python |
找到启动python的程序pid。
1 | 1 S xxx 388776 1 30 80 0 - 6907113 futex_ 21:39 pts/21 00:00:49 /home/xxx/anaconda3/envs/petr/bin/python -u tools/train.py projects/xxx |
1 | kill 388776 |