张小白带你体验MindSpore 1.1的新特性:PyNative模式

注:本文是 https://bbs.huaweicloud.com/forum/thread-104880-1-1.html 的整理版本。

为时两天的《1.23-1.24 | MindSpore第五期两日集训营》讲了不少关于MindSpore 1.1版本的新特性,张小白在MindSpore论坛做了一些野蛮操作,有成功的,也有失败的,其中关于MindSpore Lite 1.1的安装,已经分Windows源码安装( https://bbs.huaweicloud.com/blogs/239829  )、Ubuntu源码安装( https://bbs.huaweicloud.com/blogs/239830  )的2篇文字发出。而关于MindSpore 1.1.1,张小白也发了一篇Ubuntu docker安装的文字( https://bbs.huaweicloud.com/blogs/241465  )。

现在集训营的作业也陆陆续续做得差不多了。张小白就分几个主题将剩下的文字发出吧。。

阅读本文的基础:

首先要对MindSpore和LENET网络等有个初步的认识,如果不了解的话,可参看张小白写的入门博客:

张小白带你快速体验MindSpore V1.0(For ubuntu 18.04)https://bbs.huaweicloud.com/blogs/198324 

PyNative的讲解视频:https://www.bilibili.com/video/BV1Bv411s7aX 

PyNative模式简介:

PyNative模式是动态图模式,它与Graph模式的不同之处在于是在执行过程中建立计算图,而不是在执行前就做好。这种模式有助于调试神经网络模型。

Mindspore提供了对 PyNative模式与Graph模式一键切换的方式,非常方便。在下面的介绍中,大家应该能感受到这种方便。。

开发者可以通过在construct方法中打断点,查看调试信息。


实操过程:

在安装了MindSpore 1.1.0或者1.1.1 for Windows之后(具体安装方法可以参见 姐夫丁大大的论坛文字: https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=80567  张小白在姐夫的帖子后面有贴出具体的PyCharm的体验过程。。 ), 大家可以参照前面提到的 张小白带你快速体验MindSpore V1.0(For ubuntu 18.04) 博客的内容,依葫芦画瓢,使用PyCharm在Windows上完成LENET的训练。

具体做法如下:

首先我们使用graph_mode的传统模式跑完LENET训练:python train.py

历时402秒左右。

再将其一键切换到 PyNative模式:python train.py(从下图可以看出:仅需将context.set_context中的mode从context.GRAPH_MODE改为PYNATIVE_MODE即可)

跑完之后,历时约618秒左右,是原来的1.5倍。。

PyNative模式的好处就是可以在construct增加调试,我们来试一下几种增加调试的方法:

第一种方法:直接在construct中增加print语句:

可以看到相关信息已经被打印到终端。

第二种方式:使用pdb方式调试:

在lenet.py一开始增加import pdb

在construct所需要的断点处增加 pdb.set_trace()

python -m pdb train.py

此时打印x

。。。

查看调用堆栈

可以return后continue执行到第二个断点。

按q退出

第三种方式:使用PyCharm的调试功能进行调试:

除了使用pdb调试断点之外,还可以直接使用pyCharm工具进行断点调试。具体方法如下:

确认python console是否是自己所需要的python版本

是否有对应的mindspore安装

在train.py的执行配置界面设置相关的参数

在construct代码中使用pycharm的断点

启动PyCharm的DEBUG调试模式。

也可以在展开或者view相关的信息

也可以继续执行或者中断执行

如果是graph模式是不会跑到construct中去的。

总结一下:

PyNative模式是在执行的过程中才建立计算图,不像Graph模式那样预先构建好了计算图。它的优点就是能让用户很方便地去调试神经网络。尽管原理上来说PyNative模式比Graph模式要慢一点,但是MindSpore的大大们也可以通过一些比如ms_function等功能,通过图优化等技术提高PyNative模式的运行速度。

(全文完,谢谢阅读)

合智互联客户成功服务热线:400-1565-661

admin
admin管理员

上一篇:【Elastic】SpringBoot快速集成ES
下一篇:Docker镜像仓库--harbor的安装与使用

留言评论

暂无留言
取消
扫码支持