Cpu版:pip install mxnet
Gpu版:pip install mxnet-cu80
若cuda版本为cuda-9.0,改为pip install mxnet-90
pip或apt安装sklearn,easydict
制作数据集
将图片分类并放入不同文件夹
运行python im2rec.py train --list ./可生成.list文件,包含图片列表
运行python im2rec.py train ./ train.rec和train.idx训练文件
--train-ratio 0.9生成验证数据集.bin文件参数为训练数据集和验证数据集之比
--resize 128 128指定生成数据集的图片大小
参考 https://github.com/apache/incubator-mxnet
将生成的.rec,.idx,.bin(非必须)文件放入datasets/faces_emore中
新建property文本,写入图片数量,图片长宽 example : 86545 128 128
例:
python -u train.py --network m1 --loss softmax --dataset emore,1
使用softma、nosoftmax、arcface或cosface训练完成后,使用生成模型运行三元组损失训练
例:
Python -u train.py --network m1 -loss triplet --lr 0.005 --pretrained ./models/m1-softmax-emore
参数说明
--dataset训练集位置,具体位置查看config.py 108至120行
--network网络模型 候选参数 : r100 r100fc r50 r50v1(基于resnet) d169 d201(基于densenet) y1 y2(基于mobilefacenet) m1 m0.5(基于mobilenet) mnas mnas05 mnas025(基于mnasnet)
--loss损失函数 候选参数 :softmax(标准损失函数) nsoftmax (组合损失函数)arcface cosface combined triplet(三元组损失) atriplet
--ckpt模型存储时间。0: 放弃存储 1:必要时存储(验证集准确率达标时,若无验证集则不存储 3:总是存储)
--lr学习率
--lr-steps学习率改变方法 例:’10000,20000,2200000’即达到图片数量时学习率*0.1
--per-batch-size每次的训练的数量 数量越少,占用显卡内存越少
参考
https://github.com/deepinsight/insightface/tree/master/recognition
最初打算买1080 Ti,发现1080 Ti+拓展坞的组合比Gigabyte AORUS GTX 1080 Gaming Box贵很多,犹豫再三,还是购买了1080,妥妥地够用。
Gigabyte AORUS GTX 1080官方驱动不支持macOS。我的系统是macOS10.13.4,查过很多资料后,发现解决方案比较麻烦,需要使用macOS 10.13.3的kext,如下图:
最终还是将系统从10.13.4降到了10.13.2。严格按照 步骤 安装:
安装成功后在Graphics/Displays和NVIDIA Driver Manager可查到外置显卡的信息:
目前无法通过pip安装GPU版本的MXNet,只能通过 源码 )安装:
安装好CUDA9.1后,测试GPU:
安装好cuDNN7.0.5,构建MXNet,最后采用基于MXNet的测试用例验证一下包:
安装过程中需要注意的是:
用install_name_tool将lib指向修改为正确的即可:
MXNet是一个深度学习框架,是亚马逊(Amazon)选择的深度学习库,旨在提高效率和灵活性。MXNet具有轻量级、便携式、灵活的分布式/移动深度学习等优势,具有动态,突变感知的数据流Dep调度程序。
它拥有类似于 Theano和TensorFlow 的数据流图,为多GPU配置提供了良好的配置,有着类似于 Lasagne 和 Blocks 更高级别的模型构建块,并且可以在你可以想象的任何硬件上运行(包括手机)。
MXNet适用于Python,R,Julia,Scala,Go,Javascript等。
另外,MXNet也不仅仅是一个深度学习项目,它还是用于构建深度学习系统的蓝图和指南的集合,以及针对黑客的DL系统的有趣见解。
MXNet有很多的特性,今天我们来了解下。
灵活的编程模型:支持命令式和符号式编程模型以最大化效率和性能。
从云端到客户端可移植:可运行于多CPU、多GPU、集群、服务器、工作站甚至移动智能手机。
多语言支持:支持七种主流编程语言,包括C++、Python、R、Scala、Julia、Matlab和JavaScript。事实上,它是唯一支持所有 R 函数的构架。
本地分布式训练:支持在多CPU/GPU设备上的分布式训练,使其可充分利用云计算的规模优势。
性能优化:使用一个优化的C++后端引擎并行I/O和计算,无论使用哪种语言都能达到最佳性能。
云端友好,可直接与S3,HDFS和Azure兼容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)