MXNet使用及源码解读
本专栏介绍MXNet的使用和部分源码
AI之路
机器学习,深度学习,计算机视觉算法爱好者
展开
-
MXNet源码解读:数据读取高级类(1)—mxnet.io.MXDataIter
·mxnet.io.ImageRecordIter接口是MXNet框架中用于图像算法相关的数据读取接口,只需将准备好的record文件(后缀是.rec)作为该接口的输入即可训练模型。mxnet.io.ImageRecordIter接口的源码是mxnet.io.MXDataIter类,该类同样继承自MXNet框架下的数据读取基础类mxnet.io.DataIter并重写了其中的一些方法。在了解了比较...原创 2018-03-27 22:11:25 · 4065 阅读 · 0 评论 -
MXNet源码解读:数据读取基础类—mxnet.io.DataIter
mxnet.io.DataIter是MXNet框架中构造数据迭代器的基础类,在MXNet框架下只要和数据读取相关的接口基本上都继承该类,比如我们常用的图像算法相关的mxnet.io.ImageRecordIter类或mxnet.image.ImageIter类都直接或间接继承mxnet.io.DataIter类进行封装。因此熟悉mxnet.io.DataIter类对于其他high level的数据...原创 2018-03-27 21:59:42 · 3328 阅读 · 1 评论 -
MXNet的预训练:fine-tune.py源码详解
在MXNet框架下,如果要在一个预训练的模型上用你的数据fine-tune一个模型(或者叫迁移学习,即你的模型的参数的初始化不再是随机初始化,而是用别人的在大数据集上训练过的模型的参数来初始化你的模型参数),可以采用MXNet项目自带的fine-tune.py脚本,路径是~/mxnet/example/image-classification/fine-tune.py,这里的mxnet就是你从mxn原创 2017-06-28 22:01:31 · 5764 阅读 · 2 评论 -
MXNet的训练入口:fit.py源码详解
fit.py是MXNet的fine-tune.py(参看博文:MXNet的fine-tune.py源码详解)中启动训练的入口,非常值得读一读源码。总的来讲,这个fit.py脚本包含训练的一些配置,导入模型,训练模型和保存模型这几步,接下来详细阐述。建议从最后的主函数fit()开始看起。import mxnet as mximport loggingimport osimport time#原创 2017-06-29 22:27:17 · 7249 阅读 · 14 评论 -
MXNet的数据读取:data.py源码详解
这篇博文介绍MXNet里面比较重要的一个脚本data.py,路径:~/mxnet/example/image-classification/common/data.py。也是在fine-tune.py脚本中用到的数据读入脚本(参考MXNet的fine-tune.py源码详解)。数据读取在深度学习模型训练中算是比较重要的一块,MXNet官网中主要介绍的是.rec格式的数据的读取,不过这个格式比较占磁盘原创 2017-06-29 22:36:06 · 3712 阅读 · 0 评论 -
MXNet如何用mxnet.image.ImageIter直接导入图像
MXNet的图像数据导入模块主要有mxnet.io.ImageRecordIter和mxnet.image.ImageIter两个类,前者主要用来读取.rec格式的数据,后者既可以读.rec格式文件,也可以读原图像数据。这里先介绍mxnet.image.ImageIter这个类,image是个package,脚本image.py可以在~/mxnet/python/mxnet/image.py找到,里原创 2017-07-09 21:07:45 · 8952 阅读 · 2 评论 -
MXNet的数据预处理:mxnet.image.CreateAugmenter源码详解
这篇博文要介绍的mxnet.image.CreateAugmenter是承接前面一篇博文:MXNet如何用mxnet.image.ImageIter直接导入图像,在那篇博文中介绍了如何用ImageIter类导入图像,如下代码(修改后的data.py脚本):train = mx.image.ImageIter( batch_size = args.batch_si原创 2017-07-09 22:12:43 · 5040 阅读 · 0 评论 -
MXNet的训练基础脚本:base_module.py
写在前面:在MXNet中有一个很重要的脚本:base_module.py,这个脚本中的BaseModule类定义了和模型实现相关的框架。另外还有一个脚本module.py会在另外一篇博客中讲,这个类继承BaseModule类,并进行了具体的实现,比如forward方法,update_metric方法等。在创建模型的时候用的是mx.mod.Module这个类,比如:model = mx.mod.Mod原创 2017-07-15 09:17:40 · 2948 阅读 · 0 评论 -
MXNet的训练实现脚本:module.py
前面一篇博客:MXNet的训练基础脚本:base_module.py提到MXNet中很重要的一个脚本base_module.py,这里面定义了基本的BaseModule类,而本篇博客提到的module.py脚本中的Module类则是继承BaseModule类,然后进行了具体的实现,比如forward方法,update_metric方法等。在创建模型的时候用的是mx.mod.Module这个类,比如:原创 2017-07-15 09:26:22 · 6512 阅读 · 0 评论 -
MxNet使用总览
写这篇博文的初衷是希望能整理下自己在使用MxNet过程中对这个框架的理解。详细的介绍都给出了链接,这篇相当于一个概括,希望能对这个框架有一个总的认识,内容会不断补充,有疑问的欢迎交流,谢谢。1、下载MxNet并编译 MxNet的官方网址:http://mxnet.io/get_started/install.html 我这里选择如下安装方式:然后按照 Build the MXNet core s原创 2017-08-17 08:06:23 · 10447 阅读 · 2 评论 -
MXNet框架的resize操作
MXNet框架的图像预处理操作基本上都在/mxnet/python/mxnet/image.py脚本中,这里的/mxnet指的是官方github的mxnet项目。这篇博客介绍在image.py脚本中的resize操作,主要包含两个类:mxnet.image.ResizeAug和mxnet.image.ForceResizeAug。mxnet.image.ResizeAug(size,interp=2原创 2017-10-13 08:12:31 · 3688 阅读 · 0 评论 -
MXNet如何生成.lst文件和.rec文件
MXNet框架用于做图像相关的项目时,读取图像主要有两种方式:第一种是读.rec格式的文件,类似Caffe框架中LMDB,优点是.rec文件比较稳定,移植到别的电脑上也能复现,缺点是占空间(.rec文件的大小基本上和图像的存储大小差不多),而且增删数据不大灵活。第二种是.lst和图像结合的方式,首先在前面生成.rec文件的过程中也会生成.lst文件,这个.lst文件就是图像路径和标签的对应列表,也原创 2017-10-19 08:07:47 · 13807 阅读 · 27 评论 -
MXNet框架如何自定义evaluation metric
使用深度学习框架训练模型的时候都需要用到评价标准,比如准确率等,那么在MXNet框架下,这些评价标准(Evaluation Metric)是怎么实现的呢?如果我们要自定义一个不一样的评价标准要怎么做?一起来了解下吧。首先来看看在MXNet框架下关于evaluation metric的最基本的类和脚本。mxnet.metric.EvalMetric是MXNet框架中计算评价标准(evaluation原创 2017-10-22 17:01:45 · 8278 阅读 · 2 评论