参考资料:
根据MXNet源码,我们仿照着自己写一个基于MLP的MNIST测试程序
训练部分:
(1)准备训练集和测试集
data_shape = (784, )#输入图像是28*28,由于使用mlp网络,故需要展成一维进行输入 #定义训练集迭代器 train = mx.io.MNISTIter( image = data_dir + "train-images-idx3-ubyte", label = data_dir + "train-labels-idx1-ubyte", input_shape = data_shape, batch_size = 128,#一次训练集的大小,相当于每次只训练batch_size个 shuffle = True, flat = True, num_parts = kv.num_workers, part_index = kv.rank) #定义测试集迭代器 val = mx.io.MNISTIter( image = data_dir + "t10k-images-idx3-ubyte", label = data_dir + "t10k-labels-idx1-ubyte", input_shape = data_shape, batch_size = 128, flat = True, num_parts = kv.num_workers, part_index = kv.rank)
该部分定义了两个mx.io.MNISTIter迭代器,一个作训练集使用,一个作测试集使用。在MXNet中,主要使用迭代器(Iterator)来为神经网络提供数据。这里比较重要的参数包括:
- image (string, optional, default='./train-images-idx3-ubyte') – Dataset Param: Mnist image path.这里输入的是数据图像信息
- label (string, optional, default='./train-labels-idx1-ubyte') – Dataset Param: Mnist label path.
这里输入的是与image相对应的label值
- input_shape — 描述的是输入数据的大小。比如MLP的输入是1维的,故大小应该是(n,);而CNN的输入是2维的,故大小应该是(n,m)
- batch_size — “批尺寸”,实际上表示的是一次处理样本的个数。对于小样本的数据,完全可以进行一批次处理,这样收敛效果更好,即batch_size = n;而另一个极端情况batch_size = 1,即为在线学习方式。参数的影响可参考谈谈深度学习中的 Batch_Size
其余参数非必要,在特殊场合相应使用即可,参考官方文档中的API
(2)配置网络,这里以简单的两层(可以看到只用了两个激励函数)神经网络为例
#这里定义mlp网络 data = mx.symbol.Variable('data') fc1 = mx.symbol.FullyConnected(data = data, name='fc1', num_hidden=128) act1 = mx.symbol.Activation(data = fc1, name='relu1', act_type="relu") fc2 = mx.symbol.FullyConnected(data = act1, name = 'fc2', num_hidden = 64) act2 = mx.symbol.Activation(data = fc2, name='relu2', act_type="relu") fc3 = mx.symbol.FullyConnected(data = act2, name='fc3', num_hidden=10) mlp = mx.symbol.SoftmaxOutput(data = fc3, name = 'softmax')#softmax回归上面呈现的网络结果非常清晰,这里无需再做解释。全连接神经网络和Softmax回归待后续。
这里要注意的一点是mx.symbol的使用是一种声明式的编程方式,而非命令式计算,也就是说,这里只构建一个网络框架,而不涉及计算。
(3)训练网络
model = mx.model.FeedForward( symbol = mlp, num_epoch = 20, learning_rate = .1)
- symbol — The symbol configuration of computation network.即前面定义的网络
- num_epoch — Training parameter, number of training epochs(epochs).也就是训练的次数
- learning_rate — 学习常数
拟合数据结果:
model.fit(X = train, eval_data = val)
相关推荐
针对于MXNet框架 fashion-mnist数据集 mnist_train = gl.data.vision.FashionMNIST(root="fashion-mnist/",train=True) mnist_test = gl.data.vision.FashionMNIST(root="fashion-mnist/",train=False)
资源分类:Python库 所属语言:Python 资源全名:mxnet_mkl-1.4.0-cp34-cp34m-macosx_10_11_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
jetson系列的mxnet gpu版本 预编译版本 1.4.0 安装方式 pip install mxnet-1.4.0-cp36-cp36m-linux_aarch64.whl
"mxnet-the-straight-dope-master"这个压缩包可能包含了MXnet的源代码、教程、示例或者相关文档,方便用户学习和理解MXnet的运作机制以及如何在实际项目中应用。 深度学习是现代人工智能的核心技术之一,它模拟人脑...
CPU版的Mxnet python安装whl文件 CPU版的Mxnet python安装whl文件 CPU版的Mxnet python安装whl文件 CPU版的Mxnet python安装whl文件 CPU版的Mxnet python安装whl文件
GNU项目是一个自由软件集体协作项目,由理查德·斯托曼于1983年发起,旨在创建一个完全自由的操作系统,称为GNU操作系统。该项目强调软件的自由,即用户能够自由地运行、复制、分发、学习、改变和改进软件。...
No_Description_mxnet-examples-with-R
mxnet-1.9.0适合cuda11.0 linux x86_64系统
Notebooks_for_MXNet_mxnet-notebooks
资源来自pypi官网。 资源全名:mxnet_mkl-1.2.0-cp36-cp36m-macosx_10_12_x86_64.whl
mxnet-1.4.1-cp37-cp37m-macosx_10_11_x86_64.whl
mxnet_cu90-1.2.0-py2.py3-none-manylinux1_x86_64.whl
mxnet-1.4.1-cp27-cp27m-macosx_10_11_x86_64.whl
mxnet-1.4.1-cp36-cp36m-macosx_10_11_x86_64.whl
mxnet-1.4.1-cp35-cp35m-macosx_10_11_x86_64.whl
资源分类:Python库 所属语言:Python 资源全名:mxnet-1.3.1-cp36-cp36m-macosx_10_11_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
mxnet-1.9.0+mkl-cp39-cp39-win_amd64
针对于MXNet框架 fashion-mnist数据集 下载完后放到C:\Users\(你自己的用户名)\AppData\Roaming\mxnet\datasets\fashion-mnist,然后解压到该文件夹就可以 mnist_train = gl.data.vision.FashionMNIST(train=...