这篇文章主要讲解了“TensorFlow静态图和eager机制是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“TensorFlow静态图和eager机制是什么”吧!
在eager问世之前,TensorFlow一直采用的是静态图机制,其实直到现在TensorFlow的静态图依然大行其道。本文就来介绍一下TensorFlow的静态图机制。
何为静态图/动态图?
静态图是指在图构建之后,模型运行时无法进行修改。这里的“图”也就是模型的意思,一般一个图就是一个模型。这个图建好之后,运行前需要freeze,然后进行一些优化,例如图融合等,最后启动session根据之前构建的静态图进行计算,计算过程无法对静态图进行更改。
动态图和静态图对应,在模型运行过程中可以对图进行修改。熟悉PyTorch的朋友应该了解,因为PyTorch采用的就是动态图机制。不过一般情况,模型运行过程中也不需要对其进行修改。
另外,TensorFlow静态图带来的一个弊端就是难Debug。因为静态图在freeze后运行前会进行图优化,一些operation会被融合,所以有的operation会消失,无法在计算阶段提供断点和单步调试功能(图构建阶段能单步调试,但是只显示tensor,用处不大)。当然,断点和单步调试功能也会影响程序运行的效率。而PyTorch采用了动态图,自然有Debug方面的优势,提供了单步调试的功能,可以在计算过程查看所有tensor的值,非常直观方便。
所以,目前在学术界,PyTorch的使用很广泛;而在工程界,TensorFlow由于部署有优势,加上operation全面,生态良好而更受欢迎。对于个人而言,往往要看所选择的应用在业界开源代码是基于哪种框架,在别人开源代码的基础上来构建自己的应用,所有两者都需要有一定的快速上手能力。
OK,希望上面把TensorFlow的静态图机制说清楚了,有不清楚的地方欢迎留言或者联系我,我会持续更新。后面我会增加代码说明,方便理解,敬请关注~
感谢各位的阅读,以上就是“TensorFlow静态图和eager机制是什么”的内容了,经过本文的学习后,相信大家对TensorFlow静态图和eager机制是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。