[TensorFlow系列-3]:初学者是选择Tensorflow2.x还是1.x? 2.x与1.x的主要区别?
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[TensorFlow系列-3]:初学者是选择Tensorflow2.x还是1.x? 2.x与1.x的主要区别?相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119547495
目录
1. 为什么会有这个问题?
深度学习的框架演进是软件演进的正常过程,为什么会有这个疑问呢?选择最新版本不就可以了?
之所以提这个问题,是因为Google Tensorflow演进的过程中,出现的这两个大的版本2.x与1.x,之间有比较大的区别,这个差别甚至超过了Python3.x与Python2.x的区别。
是从使用者的角度来看,这两个版本的差别较大。因此有必要了解一下这两个版本之间的主要异同。
2. 给初学者的提醒
对于初学者,建议选择tensorflow2.x的版本和相关的视频教程。
Tensorflow2.0是在2019年十月发布的,初学者在选择网络视频课程是需要留意,在这个时间点之前的视频教程和书籍,基本都是基于Tensorflow1.0的。
3. Tensorflow的总体架构
相同点和联系:
Tensorflow2.0和1.0都是Google Tensorflow的深度学习框架,是同一个框架的的演进过程。
第3章 Tensorfow2.x与1.x的主要差别
(1)归属软件层次的差异
从软件架构上来看,Tensorfow1.0提供给使用者的接口是底层接口,主要集中在Tensorflow的Python Frontend层和layers,这些层是在TensorFlow底层算法引擎的基础之上,使用Python的封装,这导致1.0的使用比较麻烦,理解难度较大。当然1.0也支持Keras接口,但需要用户自己选择。
而Tenorflow2.x提供给使用者的接口主要在Keras模型之上,Keras对底层的API进行了封装,使用根据的简洁和简单。2.X版本中默认使用keras作为高级API.
该差异是后续差异的背后的根本动因。
(2)角色和立足点的差别
tensorflow1.x像一个平台工具,只是借用了python语言,tensorflow 1.X本身更像是一种描述神经网络模型的语言。也就是说tensorflow是tensorflow为立足了,扩展出了Python的外皮。
Tensorflow2.X版本与Pytorch一样,更像python的一个包,它以Python立足点,扩展除了tensorflow2的深度学习框架的包。
上述立足和立足点的变化,导致了其呈现给用户的接口是大不相同。
(3)学习和理解难度差异
Tenorflow1.x比Tenorflow2.x难度大。
(4)内部的动态与静态结构差异
1.X默认方式是先要定义一个静态结构,然后训练操作流程时独立的。这样运行效率比较高,但是调试起来费劲。最直观的一点,就是一些在函数中预先定义静态结构“彷佛”是不执行的,而写在后面的语句彷佛先执行了一样。
2.X默认采用动态图处理的方式,和python风格更接近(Eager execution)。
(5)基础概念与基础数据结构的差异
1.X版本有很多额外的概念比如,graph,session,run,placeholder,feed_dict这些,这些其实和静态模型构建息息相关。
在2.X版本中不再使用了。
(6)命名空间的差异
1.X中的变量空间和命名空间使得变量管理比较复杂,并大量依赖隐式全局名称空间(这点类似c++),还有一些必须的初始化比如`tf.global_variables_initializer()`, 有类像C++语言的库。
2.X消除了所有这些机制,支持跟踪变量, 才真正像一个Python语言的库。
(7)API管理
1.X中一些API很难找,而且存放位置分类有很多争议。
2.X版本重新归纳整理了API。
参考:
官方学习网站:https://tensorflow.google.cn/learn
作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119547495
以上是关于[TensorFlow系列-3]:初学者是选择Tensorflow2.x还是1.x? 2.x与1.x的主要区别?的主要内容,如果未能解决你的问题,请参考以下文章
TensorFlow2 入门指南 | 09 损失函数梯度下降优化器选择
深度 初学者怎么选择神经网络环境?对比MATLABTorch和TensorFlow
初学者怎么选择神经网络环境?对比MATLABTorch和TensorFlow
[TensorFlow系列-22]:基本元素与运行机制 - TensorVariableOperationSessionPlaceholderGraph静态与动态数据流图的比较