import torch
import torchvision
print(torch.__version__)
print(torchvision.__version__)
exit() // 退出
// 这是版本查看问题
cat /usr/local/cuda/version.txt // 这是查看cuda的版本
conda deactivate // 退出你的虚拟环境
conda env list // 列出你创建的虚拟环境
conda remove -n name --all // 删除你创建的虚拟环境
rm -文件名字
rm -目录名字 -r
关于移动一个文件夹到另一个文件夹
mv /home/xx/../test1 /home/xx/.../test3
这个就是将test1里面的所有文件移动到test3中 都是用绝对路径
关于vim编辑一个文件
vim 文件名
然后 i 表示插入 改好后 就可以按esc退出 退出后 在最后一行 :wq 来退出并进行保存
对于使用mmdetection不能使用多个GPU进行训练的时候的时候 为了使得能够使用多个GPU·
对mmdetection/mmdet/api/mmdet train.py 做修改
原代码
model = MMDataParallel(model, device_ids=range(cfg.gpus)).cuda()
修改后
# put model on gpus
model = MMDistributedDataParallel(model.cuda(),device_ids=[torch.cuda.current_device()])
每次修改mmdetection的代码后 要进行编译
python setup.py install
然后 这样就可以采用多GPU进行训练啦
如下
CUDA_VISIBLE_DEVICES=0,1,2,3 // 表示我使用4块GPU进行训练
./tools/dist_train.sh configs/u_casr101.py 4 --validate
// 这个表示我会自动进行测试 但是这样 就跑的很慢 可以把 --validate去掉 自己手动进行测试
如下:
./tools/dist_train.sh configs/ucas_x64.py 4 // 4表示我使用四块GPU进行训练
对于内存爆炸的情况
可以改变configs/**.py文件中的一些参数
如:
在最上面加上
fp16 = dict(loss_scale=512.)
data = dict(
imgs_per_gpu=4, // 将这里的8改为4
workers_per_gpu=4,
train=dict(
type=dataset_type,
ann_file=data_root + 'VOC2007/ImageSets/Main/trainSet1V65.txt',
img_prefix=data_root + 'VOC2007/',
pipeline=train_pipeline),
val=dict(
type=dataset_type,
ann_file=data_root + 'VOC2007/ImageSets/Main/valSet1V65.txt',
img_prefix=data_root + 'VOC2007/',
pipeline=test_pipeline),
test=dict(
type=dataset_type,
ann_file=data_root + 'VOC2007/ImageSets/Main/valSet1V65.txt',
img_prefix=data_root + 'VOC2007/',
pipeline=test_pipeline))
对于一些可读的文件进行编辑
sudo gedit transforms.py
这个是为了压缩模型,可以看看代码 在代码里面 我们发现它是把优化器optimizer给去掉了 这个会占模型的一半或是小于一半的内存 相对了来说 是比较占内存的 但是对于如果是预训练模型 是不会有优化器的 而训练之后的模型会加上优化器的 我们可以将我们训练后的模型也去删掉作为预训练模型 可能这样训练会快点 不过我没试过
python tools/publish_model.py work_dirs/cascade_rcnn_x101_64x4d_fpn_1x/best1.pth epoch_18.pth