DL框架之MXNet :深度学习框架之MXNet 的简介、安装、使用方法、应用案例之详细攻略
DL框架之MXNet :深度学习框架之MXNet 的简介、安装、使用方法、应用案例之详细攻略
MXNet 的简介
A flexible and efficient library for deep learning.
MXNet 是亚马逊(Amazon)选择的深度学习库,并且也许是最优秀的库之一。它拥有类似于 Theano 和 TensorFlow 的数据流图,为多 GPU 配置提供了良好的配置,有着类似于 Lasagne 和 Blocks 更高级别的模型构建块,并且可以在你可以想象的任何硬件上运行(包括手机)。对 Python 的支持只是其冰山一角—MXNet 同样提供了对 R、Julia、C++、Scala、Matlab,和 Javascript 的接口。
MXNet 是一个旨在提高效率和灵活性的深度学习框架。像MXNet这样的加速库提供了强大的工具来帮助开发人员利用GPU和云计算的全部功能。虽然这些工具通常适用于任何数学计算,但MXNet特别强调加速大规模深度神经网络的开发和部署。特别是,我们提供以下功能:
- 设备放置:使用MXNet,可以轻松指定每个数据结构的生存位置。
- 多GPU培训:MXNet可以通过可用GPU的数量轻松扩展计算。
- 自动区分:MXNet自动执行曾经陷入神经网络研究的衍生计算。
- 优化的预定义图层:虽然您可以在MXNet中编写自己的图层,但预定义的图层会针对速度进行优化,优于竞争库。
MXNet 官方自我评价:MXNet结合了高性能,干净的代码,高级API访问和低级控制,是深度学习框架中独一无二的选择。
1、优缺点
优点:
- 速度的标杆
- 灵活的编程模型:非常灵活。支持命令式和符号式编程模型以最大化效率和性能。
- 从云端到客户端可移植:可运行于多CPU、多GPU、集群、服务器、工作站甚至移动智能手机。
- 多语言支持:支持七种主流编程语言,包括C++、Python、R、Scala、Julia、Matlab和JavaScript。事实上,它是唯一支持所有 R 函数的构架。
- 本地分布式训练:支持在多CPU/GPU设备上的分布式训练,使其可充分利用云计算的规模优势。
- 性能优化:使用一个优化的C++后端引擎并行I/O和计算,无论使用哪种语言都能达到最佳性能。
- 云端友好,可直接与S3,HDFS和Azure兼容
缺点:
- 最小的社区
- 比 Theano 学习更困难一点
2、相关文章
MXNet: A Flexible and Efficient Machine Learning Library for Heterogeneous Distributed Systems
MXnet是一个多语言机器学习(ML)库,用于简化ML算法的开发,特别是对于深度神经网络。它嵌入在宿主语言中,将声明性符号表达式与命令式张量计算混合在一起。它提供自动微分来推导梯度。MXnet具有计算和内存效率高的特点,可以在各种异构系统上运行,从移动设备到分布式GPU集群。本文介绍了MXnet的API设计和系统实现,并解释了如何统一处理符号表达式和张量操作的嵌入。我们的初步实验表明,在使用多个GPU机器的大规模深度神经网络应用中,有着很好的结果。
3、相关链接
官网地址:http://mxnet.incubator.apache.org/
GitHub地址01:https://github.com/dmlc/mxnet
GitHub地址02:https://github.com/apache/incubator-mxnet/tree/master/example
MXNet - Python API:http://mxnet.incubator.apache.org/api/python/index.html#python-api-reference
PyPi地址:https://pypi.org/project/mxnet/
MXNet 的安装
1、第一次安装
pip install mxnet
Collecting mxnet
Downloading https://files.pythonhosted.org/packages/d1/b6/38d9ab1b16c456224823e737f1bb95fe3ff056f3834fba01cd157d59b574/mxnet-1.4.0.post0-py2.py3-none-win_amd64.whl (21.9MB)
100% |████████████████████████████████| 21.9MB 34kB/s
Requirement already satisfied: requests<2.19.0,>=2.18.4 in f:\program files\python\python36\lib\site-packages (from mxnet) (2.18.4)
Collecting graphviz<0.9.0,>=0.8.1 (from mxnet)
Downloading https://files.pythonhosted.org/packages/53/39/4ab213673844e0c004bed8a0781a0721a3f6bb23eb8854ee75c236428892/graphviz-0.8.4-py2.py3-none-any.whl
Collecting numpy<1.15.0,>=1.8.2 (from mxnet)
Downloading https://files.pythonhosted.org/packages/dc/99/f824a73251589d9fcef2384f9dd21bd1601597fda92ced5882940586ec37/numpy-1.14.6-cp36-none-win_amd64.whl (13.4MB)
100% |████████████████████████████████| 13.4MB 30kB/s
Requirement already satisfied: certifi>=2017.4.17 in f:\program files\python\python36\lib\site-packages (from requests<2.19.0,>=2.18.4->mxnet) (2018.1.18)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in f:\program files\python\python36\lib\site-packages (from requests<2.19.0,>=2.18.4->mxnet) (3.0.4)
Requirement already satisfied: urllib3<1.23,>=1.21.1 in f:\program files\python\python36\lib\site-packages (from requests<2.19.0,>=2.18.4->mxnet) (1.22)
Requirement already satisfied: idna<2.7,>=2.5 in f:\program files\python\python36\lib\site-packages (from requests<2.19.0,>=2.18.4->mxnet) (2.6)
tensorflow-gpu 1.4.0 requires enum34>=1.1.6, which is not installed.
tensorflow 1.10.0 has requirement numpy<=1.14.5,>=1.13.3, but you'll have numpy 1.14.6 which is incompatible.
moviepy 0.2.3.2 has requirement decorator==4.0.11, but you'll have decorator 4.3.0 which is incompatible.
moviepy 0.2.3.2 has requirement tqdm==4.11.2, but you'll have tqdm 4.25.0 which is incompatible.
Installing collected packages: graphviz, numpy, mxnet
Found existing installation: numpy 1.15.0rc1+mkl
Uninstalling numpy-1.15.0rc1+mkl:
Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。: 'f:\\program files\\python\\python36\\lib\\site-packages\\numpy\\core\\_multiarray_tests.cp36-win_amd64.pyd'
Consider using the `--user` option or check the permissions.
遇到问题:成功解决Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。: 'f:\\program files\\p
2、第二次安装
tensorflow-gpu 1.4.0 requires enum34>=1.1.6, which is not installed.
tensorflow 1.10.0 has requirement numpy<=1.14.5,>=1.13.3, but you'll have numpy 1.14.6 which is incompatible.
moviepy 0.2.3.2 has requirement decorator==4.0.11, but you'll have decorator 4.3.0 which is incompatible.
moviepy 0.2.3.2 has requirement tqdm==4.11.2, but you'll have tqdm 4.25.0 which is incompatible.
MXNet 的使用方法
后期更新……
1、个人使用总结
DL框架之MXNet :深度学习框架之MXNet 常见使用方法(个人使用)总结之详细攻略
相关链接:http://mxnet.incubator.apache.org/versions/master/api/python/gluon/model_zoo.html
2、经典模型集合—MXNet Model Zoo
Alias | Network | # Parameters | Top-1 Accuracy | Top-5 Accuracy | Origin |
---|---|---|---|---|---|
alexnet | AlexNet | 61,100,840 | 0.5492 | 0.7803 | Converted from pytorch vision |
densenet121 | DenseNet-121 | 8,062,504 | 0.7497 | 0.9225 | Converted from pytorch vision |
densenet161 | DenseNet-161 | 28,900,936 | 0.7770 | 0.9380 | Converted from pytorch vision |
densenet169 | DenseNet-169 | 14,307,880 | 0.7617 | 0.9317 | Converted from pytorch vision |
densenet201 | DenseNet-201 | 20,242,984 | 0.7732 | 0.9362 | Converted from pytorch vision |
inceptionv3 | Inception V3 299x299 | 23,869,000 | 0.7755 | 0.9364 | Converted from pytorch vision |
mobilenet0.25 | MobileNet 0.25 | 475,544 | 0.5185 | 0.7608 | Trained with script |
mobilenet0.5 | MobileNet 0.5 | 1,342,536 | 0.6307 | 0.8475 | Trained with script |
mobilenet0.75 | MobileNet 0.75 | 2,601,976 | 0.6738 | 0.8782 | Trained with script |
mobilenet1.0 | MobileNet 1.0 | 4,253,864 | 0.7105 | 0.9006 | Trained with script |
mobilenetv2_1.0 | MobileNetV2 1.0 | 3,539,136 | 0.7192 | 0.9056 | Trained with script |
mobilenetv2_0.75 | MobileNetV2 0.75 | 2,653,864 | 0.6961 | 0.8895 | Trained with script |
mobilenetv2_0.5 | MobileNetV2 0.5 | 1,983,104 | 0.6449 | 0.8547 | Trained with script |
mobilenetv2_0.25 | MobileNetV2 0.25 | 1,526,856 | 0.5074 | 0.7456 | Trained with script |
resnet18_v1 | ResNet-18 V1 | 11,699,112 | 0.7093 | 0.8992 | Trained with script |
resnet34_v1 | ResNet-34 V1 | 21,814,696 | 0.7437 | 0.9187 | Trained with script |
resnet50_v1 | ResNet-50 V1 | 25,629,032 | 0.7647 | 0.9313 | Trained with script |
resnet101_v1 | ResNet-101 V1 | 44,695,144 | 0.7834 | 0.9401 | Trained with script |
resnet152_v1 | ResNet-152 V1 | 60,404,072 | 0.7900 | 0.9438 | Trained with script |
resnet18_v2 | ResNet-18 V2 | 11,695,796 | 0.7100 | 0.8992 | Trained with script |
resnet34_v2 | ResNet-34 V2 | 21,811,380 | 0.7440 | 0.9208 | Trained with script |
resnet50_v2 | ResNet-50 V2 | 25,595,060 | 0.7711 | 0.9343 | Trained with script |
resnet101_v2 | ResNet-101 V2 | 44,639,412 | 0.7853 | 0.9417 | Trained with script |
resnet152_v2 | ResNet-152 V2 | 60,329,140 | 0.7921 | 0.9431 | Trained with script |
squeezenet1.0 | SqueezeNet 1.0 | 1,248,424 | 0.5611 | 0.7909 | Converted from pytorch vision |
squeezenet1.1 | SqueezeNet 1.1 | 1,235,496 | 0.5496 | 0.7817 | Converted from pytorch vision |
vgg11 | VGG-11 | 132,863,336 | 0.6662 | 0.8734 | Converted from pytorch vision |
vgg13 | VGG-13 | 133,047,848 | 0.6774 | 0.8811 | Converted from pytorch vision |
vgg16 | VGG-16 | 138,357,544 | 0.7323 | 0.9132 | Trained with script |
vgg19 | VGG-19 | 143,667,240 | 0.7411 | 0.9135 | Trained with script |
vgg11_bn | VGG-11 with batch normalization | 132,874,344 | 0.6859 | 0.8872 | Converted from pytorch vision |
vgg13_bn | VGG-13 with batch normalization | 133,059,624 | 0.6884 | 0.8882 | Converted from pytorch vision |
vgg16_bn | VGG-16 with batch normalization | 138,374,440 | 0.7310 | 0.9176 | Trained with script |
vgg19_bn | VGG-19 with batch normalization | 143,689,256 | 0.7433 | 0.9185 | Trained with script |
get_model |
Returns a pre-defined model by name |
3、模型分类
ResNet
resnet18_v1 |
ResNet-18 V1 model from “Deep Residual Learning for Image Recognition” paper. |
resnet34_v1 |
ResNet-34 V1 model from “Deep Residual Learning for Image Recognition” paper. |
resnet50_v1 |
ResNet-50 V1 model from “Deep Residual Learning for Image Recognition” paper. |
resnet101_v1 |
ResNet-101 V1 model from “Deep Residual Learning for Image Recognition” paper. |
resnet152_v1 |
ResNet-152 V1 model from “Deep Residual Learning for Image Recognition” paper. |
resnet18_v2 |
ResNet-18 V2 model from “Identity Mappings in Deep Residual Networks” paper. |
resnet34_v2 |
ResNet-34 V2 model from “Identity Mappings in Deep Residual Networks” paper. |
resnet50_v2 |
ResNet-50 V2 model from “Identity Mappings in Deep Residual Networks” paper. |
resnet101_v2 |
ResNet-101 V2 model from “Identity Mappings in Deep Residual Networks” paper. |
resnet152_v2 |
ResNet-152 V2 model from “Identity Mappings in Deep Residual Networks” paper. |
ResNetV1 |
ResNet V1 model from “Deep Residual Learning for Image Recognition” paper. |
ResNetV2 |
ResNet V2 model from “Identity Mappings in Deep Residual Networks” paper. |
BasicBlockV1 |
BasicBlock V1 from “Deep Residual Learning for Image Recognition” paper. |
BasicBlockV2 |
BasicBlock V2 from “Identity Mappings in Deep Residual Networks” paper. |
BottleneckV1 |
Bottleneck V1 from “Deep Residual Learning for Image Recognition” paper. |
BottleneckV2 |
Bottleneck V2 from “Identity Mappings in Deep Residual Networks” paper. |
get_resnet |
ResNet V1 model from “Deep Residual Learning for Image Recognition” paper. |
VGG
vgg11 |
VGG-11 model from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
vgg13 |
VGG-13 model from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
vgg16 |
VGG-16 model from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
vgg19 |
VGG-19 model from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
vgg11_bn |
VGG-11 model with batch normalization from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
vgg13_bn |
VGG-13 model with batch normalization from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
vgg16_bn |
VGG-16 model with batch normalization from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
vgg19_bn |
VGG-19 model with batch normalization from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
VGG |
VGG model from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
get_vgg |
VGG model from the “Very Deep Convolutional Networks for Large-Scale Image Recognition” paper. |
Alexnet
alexnet |
AlexNet model from the “One weird trick...” paper. |
AlexNet |
AlexNet model from the “One weird trick...” paper. |
DenseNet
densenet121 |
Densenet-BC 121-layer model from the “Densely Connected Convolutional Networks” paper. |
densenet161 |
Densenet-BC 161-layer model from the “Densely Connected Convolutional Networks” paper. |
densenet169 |
Densenet-BC 169-layer model from the “Densely Connected Convolutional Networks” paper. |
densenet201 |
Densenet-BC 201-layer model from the “Densely Connected Convolutional Networks” paper. |
DenseNet |
Densenet-BC model from the “Densely Connected Convolutional Networks” paper. |
SqueezeNet
squeezenet1_0 |
SqueezeNet 1.0 model from the “SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size” paper. |
squeezenet1_1 |
SqueezeNet 1.1 model from the official SqueezeNet repo. |
SqueezeNet |
SqueezeNet model from the “SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size” paper. |
Inception
inception_v3 |
Inception v3 model from “Rethinking the Inception Architecture for Computer Vision” paper. |
Inception3 |
Inception v3 model from “Rethinking the Inception Architecture for Computer Vision” paper. |
MobileNet
mobilenet1_0 |
MobileNet model from the “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications” paper, with width multiplier 1.0. |
mobilenet0_75 |
MobileNet model from the “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications” paper, with width multiplier 0.75. |
mobilenet0_5 |
MobileNet model from the “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications” paper, with width multiplier 0.5. |
mobilenet0_25 |
MobileNet model from the “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications” paper, with width multiplier 0.25. |
mobilenet_v2_1_0 |
MobileNetV2 model from the “Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation” paper. |
mobilenet_v2_0_75 |
MobileNetV2 model from the “Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation” paper. |
mobilenet_v2_0_5 |
MobileNetV2 model from the “Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation” paper. |
mobilenet_v2_0_25 |
MobileNetV2 model from the “Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation” paper. |
MobileNet |
MobileNet model from the “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications” paper. |
MobileNetV2 |
MobileNetV2 model from the “Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation” paper. |
MXNet 的应用案例
后期继续更新……