为了insightface和mxnet较劲的一天

mxnet环境:

官网下载pyhton2.7版本的anaconda,随便找个安装教程

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
sh Anacondaxxxx.sh  #一路默认即可,第二个回车符后修改自己想要安装的路径
#安装完毕后重启命令行,再次打开切换成了(base)
conda create -n mxnet python=2.7
#等待配置,完成以后继续:
conda activate mxnet
cat /usr/local/cuda/version.txt  #输出9.0.xxx
pip install mxnet-cu90

按insightface readme操作,每次加载完数据开始执行时报错out of memory, batchsize改成1也不行,issue#32有关于这个报错的讨论,结合其他资源各种瞎试,目测是mxnet-cu90的锅。

错误信息:

[14:15:31] src/storage/./pooled_storage_manager.h:143: cudaMalloc failed: out of memory

未果的尝试如下:

1. 强制安装mxnet-cu92 - 跑不了,cuda版本和mxnet不一致;

2. 直接pip install mxnet - 就是装了cpu版本,跑不了,程序会强烈要求设置cuda=1;

3. 执行如下指令:

 ubuntu+anaconda+mxnet环境配置 随笔

    - 一样的out of memory问题

4. 用conda create -n mxnet python=3.6搭建python3环境,运行时各种版本不对导致的xrange ascii错误

最后找了一个cuda版本7.5的,重复上述步骤改为pip install mxnet-cu75就可以跑了,K80的卡resnet50网络batchsize=32显存也就用了一半。

实际训练batchsize=32会导致lossval=Nan,改成128*8块卡,每块卡占8319MB,loss比较稳定的开始下降了

运行insightface其他问题:

1. No module named memonger

git clone https://github.com/dmlc/mxnet-memonger.git
export PYTHONPATH=$PYTHONPATH:/clone下来的memonger路径

2. Read timed out.

pip install mxnet-cu80 --default-timeout=1000

训练

src/train_softmax.py K80的卡要设batchsize=64

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄