机器学习速成课程笔记10:使用TF的基本步骤
2018-04-01 22:46
211 查看
快速翻阅,快速学习
TensorFlow 是一个用于人工智能的开源神器
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。什么是数据流图(Data Flow Graph)?
数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。下图显示了 TensorFlow 工具包的当前层次结构:
图 1. TensorFlow 工具包层次结构。
下表总结了不同层的用途:
TensorFlow 由以下两个组件组成:
图协议缓冲区
执行(分布式)图的运行时
这两个组件类似于 Java 编译器和 JVM。正如 JVM 会实施在多个硬件平台(CPU 和 GPU)上一样,TensorFlow 也是如此。
您应该使用哪个 API?您应该使用能够解决问题的最高级抽象层。较高级别的抽象层更易于使用,但(设计方面)不够灵活。我们建议您先从最高级 API 入手,让所有组件正常运作起来。如果您希望在某些特殊建模方面能够更加灵活一些,则可以降低一个级别。请注意,每个级别都是使用低级 API 构建的,因此降低层次结构级别应该比较直观。
tf.estimator API
我们将使用 tf.estimator 来完成机器学习速成课程中的大部分练习。您在练习中所做的一切都可以在较低级别(原始)的 TensorFlow 中完成,但使用 tf.estimator 会大大减少代码行数。tf.estimator 与 scikit-learn API 兼容。scikit-learn 是极其热门的 Python 开放源代码机器学习库,拥有超过 10 万名用户,其中包括许多 Google 员工。
import tensorflow as tf # Set up a linear classifier. classifier = tf.estimator.LinearClassifier() # Train the model on some example data. classifier.train(input_fn=train_input_fn, steps=2000) # Use it to predict. predictions = classifier.predict(input_fn=predict_input_fn)------------------------------------------关键词分界线------------------------------
1.Estimator
tf.Estimator类的一个实例,用于封装负责构建 TensorFlow 图并运行 TensorFlow 会话的逻辑。您可以创建自己的自定义 Estimator(如需相关介绍,请点击此处),也可以将其他人预创建的 Estimator 实例化。
预创建的 Estimator (pre-made Estimator)
其他人已建好的 Estimator。TensorFlow 提供了一些预创建的 Estimator,包括DNNClassifier、
DNNRegressor和
LinearClassifier。您可以按照这些说明构建自己预创建的 Estimator。
自定义 Estimator (custom Estimator)
您按照这些说明(https://www.tensorflow.org/get_started/custom_estimators)自行编写的 Estimator。与预创建的 Estimator 相对。
2.张量 (Tensor)
TensorFlow 程序中的主要数据结构。张量是 N 维(其中 N 可能非常大)数据结构,最常见的是标量、向量或矩阵。张量的元素可以包含整数值、浮点值或字符串值。3.图 (graph)
TensorFlow 中的一种计算规范。图中的节点表示操作。边缘具有方向,表示将某项操作的结果(一个张量)作为一个操作数传递给另一项操作。可以使用 TensorBoard 直观呈现图。TensorBoard
一个信息中心,用于显示在执行一个或多个 TensorFlow 程序期间保存的摘要信息。相关文章推荐
- 机器学习速成课程MLCC(4)--使用TensorFlow的基本步骤
- OpenGL学习笔记(四):了解OpenGL、OpenGL的操作模式、特性和基本使用步骤
- Google---机器学习速成课程(一)-基本概念
- Java基础知识强化之集合框架笔记10:Collection集合使用的步骤
- 机器学习速成课程笔记2:深入了解机器学习 (Descending into ML)-线性回归
- Google---机器学习速成课程(3.1)-TF/Pandas
- 机器学习速成课程笔记6:降低损失 (Reducing Loss)-学习速率
- 【机器学习入门】Andrew NG《Machine Learning》课程笔记之二 :基本概念、代价函数、梯度下降和线性回归
- 机器学习速成课程笔记4:降低损失 (Reducing Loss)
- Coursera台大机器学习课程笔记10 -- Linear Models for Classification
- 机器学习速成课程笔记8:降低损失 (Reducing Loss)-随机梯度下降法
- 机器学习速成课程笔记3:深入了解机器学习 (Descending into ML)-训练与损失
- 机器学习速成课程笔记5:降低损失 (Reducing Loss)-梯度下降法
- 台湾大学林轩田机器学习技法课程学习笔记10 -- Random Forest
- Google---机器学习速成课程(3.2)-TF
- 机器学习速成课程笔记9:降低损失 (Reducing Loss)-Playground 练习
- 机器学习笔记(5)sklearn基本使用
- 机器学习速成课程MLCC(10)--训练神经网络(编程练习)
- 《机器学习实战》学习笔记---开发机器学习应用程序的基本步骤
- Coursera台大机器学习技法课程笔记10-Random forest