TensorFlow是一个用于构建的编程框架机器学习还有深度学习软件。它的工作原理是将数据保存在被称为张量的多维结构中。TensorFlow库支持Python和JavaScript。
TensorFlow由谷歌开发,现在是解决ML和AI相关问题的开源解决方案大数据.这是一个多功能的系统,特别是它能够在gpu和移动设备以及cpu上运行。
TensorFlow的结构是什么?
TensorFlow库由多个api组成,大致可以分为两类:低级和高级。
底层TensorFlow api
TensorFlow Core API是TensorFlow的主要引擎.开发人员可以将TensorFlow Core集成到他们自己的Python或JavaScript代码中,允许他们创建强大的机器学习应用程序。
TensorFlow Core功能强大,但学习曲线非常陡峭。任何使用Core的人不仅要了解主要API,还要了解构成TensorFlow基础的数据概念。
高级TensorFlow api
这些是运行在TensorFlow上的高级工具和库的集合。其中一些可以帮助创建可以构成图基础的模型。其他的提供了一个模块化的层,使得开发不需要知道TensorFlow的所有细节。
这些API中的许多都比核心API更小,更一致,并且具有更宽容的学习曲线。
TensorFlow核心关键概念
使用TensorFlow Core意味着涉及一些复杂的数据科学。需要了解的主要概念包括:
张量
张量是多维数据的集合。每个张量有四个关键属性:秩、形状类型和标签。张量的秩是维数,所以一列数据的秩是1,而一个表的秩是2。张量可以有无限维度。
Shape指的是张量的总体大小,它是每个维度的组合大小。张量只有一个数据类型,由开发人员在实例化时指定。最后,每个张量都有一个名字或标签。张量是由特遣部队。张量类。
图
图是TensorFlow中计算的基础。图由称为边的节点和连接器组成。类中定义的一个操作函数特遣部队。操作对象。边包含张量。在执行过程中,张量通过节点。节点相应地处理数据,并将结果传递给图上的下一个节点。
会话
为了在TensorFlow中处理数据,开发人员必须首先创建一个会话并调用它的run方法(tf.Session.run).此方法的参数指定图的起始点。然后,会话提示以正确的顺序执行所有相关操作,最终产生所需的输出。
常量
常数是不包含张量的边。这些数据类型可以是简单的数据类型,比如整数,也可以是更复杂的结构,比如NumPy数组。的tf.constant函数创建常量值。
变量
变量与常量类似,只是它们的值可以在运行时更改。的特遣部队。变量函数声明变量。
占位符
占位符是一个空张量。代码定义了占位符的结构,但是在运行时动态地传递值。这允许开发人员在每个会话中提供一个新的张量。
TensorBoard
TensorBoard是一个命令行工具,允许开发人员可视化他们的TensorFlow图。该工具用于TensorFlow会话生成的日志,用户可以选择以多种格式查看数据。
什么是高级TensorFlow api ?
TensorFlow附带了几个高级api,开发人员可以使用这些api创建机器学习系统或神经网络。这些api依赖于TensorFlow Core来执行数据操作。但是,这些api通常为构建应用程序的人提供了一个较平缓的学习曲线。它们还提供了更高程度的模块化,因为它们不需要编码员直接使用TensorFlow核心API。
Keras
近年来,TensorFlow和Keras已经不可避免地联系在一起,尽管这两个库是相互独立的。Keras是一个高级API,使用TensorFlow作为深度学习后端。
Keras的主要特点是可用性。Keras API相对简单,许多开发人员或数据科学家可以轻松掌握它。它也是高度可配置和模块化的,这意味着可以在这个框架上构建极其复杂的应用程序。
TF估计量
在使用TensorFlow核心API时,开发人员必须从头开始构建图。TF Estimator可以通过估计可用数据所需的数据模型来完成大部分艰巨的工作。
Estimator具有一些高级函数,如Estimator。Evaluate、estimator.predict()和estimator.export。这个API的输出是一个包含建议数据模型的对象。然后可以对其进行微调以适应数据。
TF苗条
TF Slim是一个轻量级库,可以定义和训练机器学习模型。开发人员使用薄层构建模型,然后使用适当的数据源创建会话。
由此产生的操作估计任何错误或数据丢失,然后开发人员可以优化以提高准确性。
TFLearn
TFLearn是一个高度透明的API,允许快速创建和建模原型。用户可以完全控制单个张量,并且有一些详细的可视化工具可用。这使得监视和控制模型开发的方式成为可能。
TFLearn还提供了示例和教程,这使得它成为想要了解TensorFlow Core功能的开发人员的理想教育工具。
漂亮的张量
这个API是一个TensorFlow包装器,用于神经网络的开发。使用Pretty Tensor,开发人员可以创建类似张量的对象。这些对象具有可链接的语法,非常适合构建复杂的结构,例如神经网络。
十四行诗
Sonnet是面向对象的Python为TensorFlow创建抽象层的库。十四行诗模块非常灵活,自包含,并与所有其他模块解耦。