55- [ 安装MXNet] ( #%E5%AE%89%E8%A3%85mxnet )
66- [ 安装VisualDL] ( #%E5%AE%89%E8%A3%85visualdl )
77- [ 开始编写训练MNIST的程序] ( #%E5%BC%80%E5%A7%8B%E7%BC%96%E5%86%99%E8%AE%AD%E7%BB%83mnist%E7%9A%84%E7%A8%8B%E5%BA%8F )
8+ - [ 用VisualDL展示模型图] ( #%E7%94%A8visualdl%E5%B1%95%E7%A4%BA%E6%A8%A1%E5%9E%8B%E5%9B%BE )
9+
810
911## 安装MXNet
1012请按照MXNet的[ 官方网站] ( https://mxnet.incubator.apache.org/get_started/install.html ) 来安装MXNet,并验证安装成功。
@@ -30,21 +32,21 @@ pip install --upgrade dist/visualdl-0.0.1-py2-none-any.whl
3032我们为您提供了一个演示程序 [ mxnet_demo.py] ( ./mxnet_demo.py ) 。里面展示了如何下载MNIST数据集以及编写MXNet程序来进行CNN的训练。MXNet的部分借鉴了MXNet[ 官方入门文件] ( https://mxnet.incubator.apache.org/tutorials/python/mnist.html )
3133为了嵌入VisualDL程序,以便在MXNet训练时进行检测,我们需要声明一个LogWriter实例:
3234
33- ```
34- logger = LogWriter(logdir, sync_cycle=10 )
35+ ``` python
36+ logger = LogWriter(logdir, sync_cycle = 30 )
3537```
3638
3739logger实例里面包含VisualDL的四个功能模块 Scalar, Image 以及 Histogram。这里我们使用 Scalar 模块:
3840
39- ```
41+ ``` python
4042scalar0 = logger.scalar(" scalars/scalar0" )
4143```
4244
4345模块的命名可以有 '/', 以便对于复杂模型创建不同的命名空间。
4446
4547MXNet在fit函数中提供了很多[ API] ( https://mxnet.incubator.apache.org/api/python/index.html ) 。我们把自己编写好的回调函数 add_scalar 插入到相应的 API中
4648
47- ```
49+ ``` python
4850lenet_model.fit(train_iter,
4951 eval_data = val_iter,
5052 optimizer = ' sgd' ,
@@ -57,4 +59,21 @@ lenet_model.fit(train_iter,
5759
5860这样就好了。在MXNet的训练过程中,每一个批次(batch)训练完后,都会调用我们的回调函数来对准确率进行记录。如您所料,随着训练的进行,准确率会不断上升直到95%以上。以下是两个epoch训练过后的准确率走向:
5961
60- <p align =center ><img width =" 80% " src =" ./epoch2_small.png " /></p >
62+ <p align =center ><img width =" 50% " src =" ./epoch2_small.png " /></p >
63+
64+ ## 用VisualDL展示模型图
65+
66+ VisualDL的一个优点是能可视化深度学习模型,帮助用户更直观的了解模型的构成,都有哪些操作,哪些输入等等。VisualDL的模型图支持原生态的PaddlePaddle格式以及普遍适用的ONNX格式。在这里用户可以使用MXNet训练模型,然后用 [ ONNX-MXNet] (https://github.com/onnx/onnx-mxnet ) 工具将其转换成 ONNX 格式,然后进行可视化。
67+ 我们这里使用已经从MXNet转换到ONNX的现成模型 [ Super_Resolution model] ( https://s3.amazonaws.com/onnx-mxnet/examples/super_resolution.onnx )
68+
69+ VisualDL的使用很简单,在完成安装后只需要把模型文件(protobuf格式)用参数 -m 提供给VisualDL即可。
70+
71+ ``` bash
72+ visualDL --logdir=/workspace -m /workspace/super_resolution_mnist.onnx --port=8888
73+ ```
74+
75+ 模型图的效果如下:
76+
77+ <p align =center ><img width =" 70% " src =" ./mxnet_graph.gif " /></p >
78+
79+ 生成的完整效果图可以在[ 这里] ( ./super_resolution_graph.png ) 下载。
0 commit comments