M本篇博客主要讲讲MXNet如何加载数据的,因为它自己实现了一个方便的数据加载的方法。当然最全面的还是去看MXNet的官方文档了,这里主要是简单介绍一下,外加一些自己实验的结果。
目录
一.介绍
MXNet主要使用迭代器(Iterator)来为神经网络提供数据,当然迭代器还会对数据进行一些预处理和生成批数据。
并且,MXNet的Iterator还有两点特殊的:
- 为MNIST image 和 RecordIO image提供了基本迭代器
- Mxnet允许学习进程和读取数据并行。而且读取数据一般都是单独的线程,这样IO的开销看起来就会小很多啊
Iterator需要五类参数:
- Dataset Param
- Batch Param
- Augmentation Param
- Backend Param
- Auxiliary Param
其中,dataset,batch param是必须的,其他视情况而定。每种参数具体效用,大家可以去看看文档,这里就不赘言了。
好了。BB完了,下面开始我们的干货。
等一下,这儿还得在B一句,不过这一句很重要。简述一下MXNet加载数据的整个流程:
MXNet的这个方法之所以与众不同,在于神经网络或者说Iterator并不是直接处理原生数据比如图片之类的,而是处理的自定义的一种文件格式rec。而rec格式的文件由依赖于一个描述原