[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. 为什么会有这个问题?

2.  给初学者的提醒

3. Tensorflow的总体架构

第3章 Tensorfow2.x与1.x的主要差别

(1)归属软件层次的差异

(2)角色和立足点的差别

(3)学习和理解难度差异

(4)内部的动态与静态结构差异

(5)基础概念与基础数据结构的差异

(6)命名空间的差异

(7)API管理

参考:


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 损失函数梯度下降优化器选择

从框架优缺点说起,这是一份TensorFlow入门极简教程

深度 初学者怎么选择神经网络环境?对比MATLABTorch和TensorFlow

初学者怎么选择神经网络环境?对比MATLABTorch和TensorFlow

[TensorFlow系列-22]:基本元素与运行机制 - TensorVariableOperationSessionPlaceholderGraph静态与动态数据流图的比较

Python玩转人工智能最火框架 TensorFlow应用实践 学习 教程