参考资料:
根据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)mxnet-the-straight-dope-master的一些资料。关于如何安装mxnet模块,这个我在博客中记录过,欢迎大家交流学习。
针对于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
CPU版的Mxnet python安装whl文件 CPU版的Mxnet python安装whl文件 CPU版的Mxnet python安装whl文件 CPU版的Mxnet python安装whl文件 CPU版的Mxnet python安装whl文件
jetson系列的mxnet gpu版本 预编译版本 1.4.0 安装方式 pip install mxnet-1.4.0-cp36-cp36m-linux_aarch64.whl
资源来自pypi官网。 资源全名:mxnet_mkl-1.2.0-cp36-cp36m-macosx_10_12_x86_64.whl
mxnet_cu90-1.2.0-py2.py3-none-manylinux1_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
该资源为《动手学习深度学习》图像分类数据集节所需的Fashion-MNIST数据集。Windows用户在启动jupyter notebook之前运行set MXNET_GLUON_REPO=https://apache-mxnet.s3.cn-north-1.amazonaws.com.cn/命令即可从国内...
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=...
资源分类:Python库 所属语言:Python 资源全名:mxnet_mkl-1.3.0-py2.py3-none-manylinux1_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
大数据辅助插件下载mxnet,放这里大家随便下载,绝对好用,不限制
资源分类:Python库 所属语言:Python 资源全名:sagemaker_mxnet_inference-1.2.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:sagemaker_mxnet_training-3.1.13.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
使用亚马逊djl包进行深度学习开发时要用到
资源来自pypi官网。 资源全名:mxnet_cu90-1.3.0-1-py2.py3-none-win_amd64.whl
GNU项目是一个自由软件集体协作项目,由理查德·斯托曼于1983年发起,旨在创建一个完全自由的操作系统,称为GNU操作系统。该项目强调软件的自由,即用户能够自由地运行、复制、分发、学习、改变和改进软件。...