代码:TASN
拉取镜像
根据tasn项目需求,从docker官网拉取mxnet/python、cuda8.0的镜像
docker pull mxnet/python:1.5.0_gpu_cu80_mkl_py3
挂载主机
挂载主机使得容器内部目录和宿主主机目录关联起来
sudo docker run --gpus all -it -v 宿主机目录:容器内的目录 镜像id bash
镜像id可通过
docker images
查看
下载TASN
1、下载tasn:
git clone https://github.com/researchmm/tasn.git
cd tasn/tasn-mxnet/example/tasn
2、安装libopenblas-dev
、liblapack-dev
和libopencv-dev
,建立硬链接:
apt-get install -y libopenblas-dev liblapack-dev libopencv-dev
ln /dev/null /dev/raw1394
配置nccl
1、从谷歌云盘下载nccl.tar
2、将nccl.tar移动到tasn/tasn-mxnet/example/tasn
目录下
3、解压nccl.tar:
tar -xvf nccl.tar
4、构建库并测试:
cd nccl
make CUDA_HOME=<cuda install path> test
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./build/lib
./build/test/single/all_reduce_test
如果出现Error: must specify at least data size in bytes!
,执行以下命令:
./build/test/single/all_reduce_test 10000000
如果出现以下内容,那么恭喜你🎉测试成功
Attention-based Sampler in TASN
1、安装MobulaOP:
# Clone the project
git clone https://github.com/wkcn/MobulaOP
# Enter the directory
cd MobulaOP
# Install MobulaOP
pip install -v -e .
2、切换到tasn/tasn-mxnet/example/tasn
目录
3、下载AttentionSampler:
git clone https://github.com/wkcn/AttentionSampler
4、将以下代码复制到model.py的头部:
import mxnet as mx
import mobula
from AttentionSampler.attention_sampler import attsampler_mx
mobula.op.load('./AttentionSampler/attention_sampler')
安装portalocker2.0.0
pip install portalocker==2.0.0
cuda8.0
1、下载cuda-8.0.tar.gz:
链接: https://pan.baidu.com/s/11FpjKpd3z9l8teJS7Sd04g 密码: aiqq
2、将cuda-8.0.tar.gz移动到/usr/local
目录下
3、备份原版cuda-8.0:
mv cuda-8.0 cuda-8.0-bac
4、解压cuda-8.0.tar.gz:
tar zxvf cuda-8.0.tar.gz
mxnet
1、下载mxnet.tar.gz:
链接: https://pan.baidu.com/s/1GItHSLLyL7zXQ10FOeShRw 密码: 01oe
2、将mxnet.tar.gz移动到/usr/local/lib/python3.5/dist-packages
目录下:
mv mxnet.tar.gz /usr/local/lib/python3.5/dist-packages
3、备份原版mxnet:
mv mxnet mxnet_bac
4、解压mxnet.tar.gz:
tar zxvf mxnet.tar.gz
下载预训练模型和数据
1、切换到tasn/tasn-mxnet/example/tasn
目录
2、将预训练模型下载到tasn/tasn-mxnet/example/tasn/model
目录:
sudo wget http://data.mxnet.io.s3-website-us-west-1.amazonaws.com/models/imagenet/resnet/18-layers/resnet-18-0000.params -O model/resnet-18-0000.params
sudo wget http://data.mxnet.io.s3-website-us-west-1.amazonaws.com/models/imagenet/resnet/18-layers/resnet-18-symbol.json -O model/resnet-18-symbol.json
sudo wget http://data.mxnet.io.s3-website-us-west-1.amazonaws.com/models/imagenet/resnet/50-layers/resnet-50-symbol.json -O model/resnet-50-symbol.json
sudo wget http://data.mxnet.io.s3-website-us-west-1.amazonaws.com/models/imagenet/resnet/50-layers/resnet-50-0000.params -O model/resnet-50-0000.params
3、从谷歌云盘下载cub.tara数据
4、将cub.tar移动到tasn/tasn-mxnet/example/tasn/data
目录下
5、解压cub.tar:
tar -xvf data/cub.tar -C data/
修改train.sh
vim train.sh
1、修改cuda路径
2、将python改为python3
修改后的结果如下图所示:
训练TASN
./tasn.sh
完结~撒花🎉