安装mxnet 镜像_【mxnet速成】mxnet图像分类从模型自定义到测试

本文介绍了MXNet的基本概念、安装配置,以及如何使用MXNet进行自定义数据加载、网络搭建、模型训练和测试。通过实例展示了MXNet在图像分类任务中的应用,并提到了数据增强、模型保存和训练过程的可视化方法。
摘要由CSDN通过智能技术生成

a100f9f411caf0166b55e107819bce03.png

这一次我们讲讲mxnet,相关的代码、数据都在我们 Git 上,希望大家 Follow 一下这个 Git 项目,后面会持续更新不同框架下的任务。

https://github.com/longpeng2008/LongPeng_ML_Course

01 mxnet是什么

mxnet是amazon的官方框架,下面参考mxnet的官方简介

https://mxnet-bing.readthedocs.io/en/latest/zh/overview.html

深度学习系统通常有两种编程方式,一种是声明式编程(declarative programming),用户只需要声明要做什么,而具体执行则由系统完成。以Caffe,TensorFlow的计算图为代表。优点是由于在真正开始计算的时候已经拿到了整个计算图,所以可以做一系列优化来提升性能。实现辅助函数也容易,例如对任何计算图都提供forward和backward函数,另外也方便对计算图进行可视化,将图保存到硬盘和从硬盘读取。缺点是debug很麻烦,监视一个复杂的计算图中的某个节点的中间结果并不简单,逻辑控制也不方便。

一种是命令式编程(imperative programming),以numpy,torch/pytorch为代表,每个语句按照原来的意思顺序执行。它 的特点是语义上容易理解,灵活,可以精确控制行为。通常可以无缝地和主语言交互,方便地利用主语言的各类算法,工具包,debug和性能调试器,但是实现统一的辅助函数和提供整体优化都很困难。

MXNet尝试将两种模式无缝的结合起来。在命令式编程上MXNet提供张量运算,进行模型的迭代训练和更新中的控制逻辑;在声明式编程中MXNet支持符号表达式,用来描述神经网络,并利用系统提供的自动求导来训练模型。

随着pytorch的崛起,mxnet已经掉出前三梯队,但不影响喜欢它的人使用。相比于重量级的tensorflow,mxnet非常轻量,占用内存少,分布式训练方便,常被用于比赛刷榜(见笔者以前用来刷榜的文)。

如何步入深度学习刷榜第一重境界

02 mxnet安装配置

喜欢自定义安装和精确控制版本的朋友,可以自行编译,喜欢偷懒的pip安装即可,方便快捷。

sudo pip install mxnet

不过如果你要多机多卡使用,还是源码编译安装吧。

https://github.com/apache/incubator-mxnet

03 mxnet自定义数据

下面就开始我们的任务,跟以往项目一样,从自定义数据和自定义网络开始。

mxnet分类任务要求的输入分类文件的格式与caffe不一样,为下面的格式,其中分别是序号,标签,路径

01../../../../../datas/mouth/1/182smile.jpg
11../../../../../datas/mouth/1/435smile.jpg

数据的载入需要用到接口DataBatch和DataIter

https://mxnet.incubator.apache.org/api/python/io/io.html

首先我们定义一下相关的参数配置,主要用于载入训练/测试数据集路径data-train,data-val,rgb均值rgb-mean,类别数目num-classes与训练样本集大小num-examples

def add_data_args(parser):
    data = parser.add_argument_group('Data', 'the input images')
    data.add_argument('--data-train', type=str, help='the training data')
    data.add_argument('--data-val', type=str, help='the validation data')
    data.add_argument('--rgb-mean', type=str, default='123.68,116.779,103.939',help='a tuple of size 3 for the mean rgb')
    data.add_argument('--pad-size', type=int, default=0,
help='padding the input image')
    data.add_argument('--image-shape', type=str,
help=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值