google机器学习框架tensorflow学习笔记(四)

使用TensorFlow的基本步骤

tensorflow是一个可用于构建机器学习模型的平台,但其实它的用途很广泛。它是一种基于图表的通用计算框架,可用来编写你能想出的任何东西。事实上tensorflow.org的API页面中提供了可在代码中使用的低级tensorflow运算的完整列表。贡献者们还添加了多个可以让我们轻松的执行常见任务的高级框架。
下图显示了 TensorFlow 工具包的当前层次结构:
下表总结了不同层的用途:
TensorFlow 由以下两个组件组成:
  • 图协议缓冲区
  • 执行(分布式)图的运行时
这两个组件类似于 Java 编译器和 JVM。正如 JVM 会实施在多个硬件平台(CPU 和 GPU)上一样,TensorFlow 也是如此。 较高级别的抽象层更易于使用,但(设计方面)不够灵活。 如果您希望在某些特殊建模方面能够更加灵活一些,则可以降低一个级别。请注意,每个级别都是使用低级 API 构建的,因此降低层次结构级别应该比较直观。

tf.estimator API

tf.estimator 与 scikit-learn API 兼容。 scikit-learn  是极其热门的 Python 开放源代码机器学习库,拥有超过 10 万名用户,其中包括许多 Google 员工。在学习如何使用tensorflow之前先了解一下Pandas。Pandas 是用于进行数据分析和建模的重要库,广泛应用于 TensorFlow 编码。

Tensorflow编程概念

学习目标:

  • 学习 TensorFlow 编程模型的基础知识,重点了解以下概念:

    • 张量
    • 指令
    • 会话
  • 构建一个简单的 TensorFlow 程序,使用该程序绘制一个默认图并创建一个运行该图的会话

注意: 请仔细阅读本教程。TensorFlow 编程模型很可能与您遇到的其他模型不同,因此可能不如您期望的那样直观。

概念概览

TensorFlow 的名称源自张量,张量是任意维度的数组。借助 TensorFlow,您可以操控具有大量维度的张量。即便如此,在大多数情况下,您会使用以下一个或多个低维张量:

  • 标量是零维数组(零阶张量)。例如,\'Howdy\'  5
  • 矢量是一维数组(一阶张量)。例如,[2, 3, 5, 7, 11]  [5]
  • 矩阵是二维数组(二阶张量)。例如,[[3.1, 8.2, 5.9][4.3, -2.7, 6.5]]

TensorFlow 指令会创建、销毁和操控张量。典型 TensorFlow 程序中的大多数代码行都是指令。

TensorFlow (也称为计算图数据流图)是一种图数据结构。很多 TensorFlow 程序由单个图构成,但是 TensorFlow 程序可以选择创建多个图。图的节点是指令;图的边是张量。张量流经图,在每个节点由一个指令操控。一个指令的输出张量通常会变成后续指令的输入张量。TensorFlow 会实现延迟执行模型,意味着系统仅会根据相关节点的需求在需要时计算节点。

张量可以作为常量变量存储在图中。您可能已经猜到,常量存储的是值不会发生更改的张量,而变量存储的是值会发生更改的张量。不过,您可能没有猜到的是,常量和变量都只是图中的一种指令。常量是始终会返回同一张量值的指令。变量是会返回分配给它的任何张量的指令。

要定义常量,请使用 tf.constant 指令,并传入它的值。例如:

  x = tf.constant([5.2])

同样,您可以创建如下变量:

  y = tf.Variable([5])

或者,您也可以先创建变量,然后再如下所示地分配一个值(注意:您始终需要指定一个默认值):

  y = tf.Variable([0])
  y = y.assign([5])

定义一些常量或变量后,您可以将它们与其他指令(如 tf.add)结合使用。在评估 tf.add 指令时,它会调用您的 tf.constant  tf.Variable 指令,以获取它们的值,然后返回一个包含这些值之和的新张量。

图必须在 TensorFlow 会话中运行,会话存储了它所运行的图的状态:

将 tf.Session() 作为会话:
  initialization = tf.global_variables_initializer()
  print y.eval()

在使用 tf.Variable 时,您必须在会话开始时调用 tf.global_variables_initializer,以明确初始化这些变量,如上所示。

注意:会话可以将图分发到多个机器上执行(假设程序在某个分布式计算框架上运行)。有关详情,请参阅分布式 TensorFlow

总结

TensorFlow 编程本质上是一个两步流程:

  1. 将常量、变量和指令整合到一个图中。
  2. 在一个会话中评估这些常量、变量和指令。

创建一个简单的Tensorflow程序

添加import语句
与几乎所有 Python 程序一样,您首先要添加一些  import  语句。 当然,运行 TensorFlow 程序所需的  import  语句组合取决于您的程序将要访问的功能。至少,您必须在所有 TensorFlow 程序中添加  import tensorflow  语句:
import tensorflow as tf

TensorFlow提供了一个 默认图 。不过,我们建议您明确创建自己的  Graph ,以便跟踪状态(例如,您可能希望在每个单元格中使用一个不同的  Graph )。

import tensorflow as tf

# Create a graph.
g = tf.Graph()

# Establish the graph as the "default" graph.
with g.as_default():
  # Assemble a graph consisting of the following three operations:
  #   * Two tf.constant operations to create the operands.
  #   * One tf.add operation to add the two operands.
  x = tf.constant(8, name="x_const")
  y = tf.constant(5, name="y_const")
  sum = tf.add(x, y, name="x_y_sum")


  # Now create a session.
  # The session will run the default graph.
  with tf.Session() as sess:
    print sum.eval()
更多关于张量编程的内容请参考tensorflow张量编程补充 点击打开链接

猜你喜欢

转载自blog.csdn.net/qq_41196472/article/details/79581500