TensorFlow介绍
TensorFlow
最初由Google
开发,它最初定义为描述机器学习算法的接口,以及执行该算法的实现。
TensorFlow
的主要预期目标是简化机器学习解决方案在各种平台上的部署,如计算机CPU
、计算机GPU
、移动设备以及最近的浏览器中的部署。最重要的是,TensorFlow
提供了许多有用的功能来创建机器学习模型并大规模运行他们。TensorFlow
它专注于易用性,并能保持良好的性能。
TensorFlow
既可供初学者使用,也可供专家使用。TensorFlow API
具有不同级别的复杂度,从而使初学者可以从简单的API
开始,同时也可以让专家创建非常复杂的模型。
TensorFlow主要架构
TensorFlow
架构具有多个抽象层级。我们首先介绍底层,然后逐渐通往最上层。
大多数深度学习计算都是用C++编码的。为了再GPU上进行计算,
TensorFlow
使用了由NVIDIA
开发的库CUDA
。这就是想要利用GPU
功能就需要安装CUDA
,以及不能使用其他硬件制造商GPU
的原因。
然后,
Python底层API
封装了C++源代码。当调用TensorFlow
的Python方法时,通常会在后台调用C++代码。这个封装层使用户可以更快的工作,因为Python被认为更易于使用并且不需要编译。该Python封装器可以创建非常基本的运算,例如矩阵乘法和加法。
最上层是
高级API
,由Keras
和评估器API
两个组件组成。Keras
是TensorFlow
的一个用户、模块化且可扩展的封装器,评估器API
包含多个预制组件,可以让你轻松的构建机器学习模型。你可以将他们视为模块化
或者组件
在深度学习中,模型通常是指经过数据训练的神经网络。模型由架构、矩阵权重和参数组长
Keras介绍
Keras
于2015年首次发布,它被设计为一种接口,可用于使用神经网络进行快速实验。因此,他依赖于TensorFlow
或者Theano
来运行深度学习操作。Keras
以其用户友好著称,是初学者的首选库。TensorFlow
完全集成了Keras
,这意味着无需安装TensorFlow
以外的任何库就可以使用它。我们将依赖tf.keras
而不是Keras
的独立版本。这两个版本之间有一些细微的差异,例如与TensorFlow
的其他模块的兼容性以及模型的保存方式。因此,读者确保使用正确的版本,具体方法如下:
- 在代码中,导入
tf.keras
而不是keras
。 - 浏览
TensorFlow
网站上的tf.keras
文档,而不是keras.io
文档。 - 在使用外部
Keras
库时,请确保他们与tf.keras
兼容。 - 某些保存的模型在
Keras
版本之间可不能兼容。
这两个版本在可预见的未来将继续共存,而tf.keras
与TensorFlow
集成将越来越密切。为了说明Keras
的强大功能和简单性,我们将使用该库实现一个简单的神经网络。