zoukankan      html  css  js  c++  java
  • TensorFlow神经网络机器学习使用详细教程,此贴会更新!!!

    运行 TensorFlow
    打开一个 python 终端:

     1 $ python
     2 >>> import tensorflow as tf
     3 >>> hello = tf.constant('Hello, TensorFlow!')
     4 >>> sess = tf.Session()
     5 >>> print sess.run(hello)
     6 Hello, TensorFlow!
     7 >>> a = tf.constant(10)
     8 >>> b = tf.constant(32)
     9 >>> print sess.run(a+b)
    10 42
    11 >>> 


    使用 TensorFlow, 你必须明白 TensorFlow:
    • 使用图 (graph) 来表示计算任务.
    • 在被称之为 会话 (Session) 的上下文 (context) 中执行图.
    • 使用 tensor 表示数据.
    • 通过 变量 (Variable) 维护状态.
    • 使用 feed 和 fetch 为任意操作输入和输出数据.


    综述
    TensorFlow 是一个编程系统, 使用图来表示计算任务. 图中的节点被称之为 op(operation 的缩写). 一个 op获得 0 个或多个 Tensor , 执行计算, 产生 0 个或多个 Tensor . 每个 Tensor 是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels] .一个TensorFlow 图 描述 了计算的过程. 为了进行计算, 图必须在 会话 里被启动. 会话 将图的 op 分发到诸如 CPU 或 GPU 之类的 设备 上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray 对象; 在 C 和 C++ 语言中, 返回的 tensor 是 tensorflow::Tensor 实例.

    计算图
    TensorFlow 程序通常被组织成一个构建阶段, 和一个执行阶段. 在构建阶段, op 的执行步骤 被描述成一个图.在执行阶段, 使用会话执行执行图中的 op.
    例如, 通常在构建阶段创建一个图来表示和训练神经网络, 然后在执行阶段反复执行图中的训练 op.
    TensorFlow 支持 C, C++, Python 编程语言. 目前, TensorFlow 的 Python 库更加易用, 它提供了大量的辅助函数来简化构建图的工作, 这些函数尚未被 C 和 C++ 库支持.
    三种语言的会话库 (session libraries) 是一致的.

    构建图
    构建图的第一步, 是创建源 op (source op). 源 op 不需要任何输入, 例如 常量 (Constant) . 源 op 的输出被传递给其它 op 做运算.
    Python 库中, op 构造器的返回值代表被构造出的 op 的输出, 这些返回值可以传递给其它 op 构造器作为输入.
    TensorFlow Python 库有一个 默认图 (default graph) , op 构造器可以为其增加节点. 这个默认图对 许多程序
    来说已经足够用了. 阅读 Graph 类 文档 来了解如何管理多个图.

     1 import tensorflow as tf
     2 # 创建一个常量 op, 产生一个 1x2 矩阵. 这个 op 被作为一个节点
     3 # 加到默认图中.
     4 #
     5 # 构造器的返回值代表该常量 op 的返回值.
     6 matrix1 = tf.constant([[3., 3.]])
     7 # 创建另外一个常量 op, 产生一个 2x1 矩阵.
     8 matrix2 = tf.constant([[2.],[2.]])
     9 # 创建一个矩阵乘法 matmul op , 把 'matrix1' 和 'matrix2' 作为输入.
    10 # 返回值 'product' 代表矩阵乘法的结果.
    11 product = tf.matmul(matrix1, matrix2)


    默认图现在有三个节点, 两个 constant() op, 和一个 matmul() op. 为了真正进行矩阵相乘运算, 并得到矩阵乘法的 结果, 你必须在会话里启动这个图.

    在一个会话中启动图
    构造阶段完成后, 才能启动图. 启动图的第一步是创建一个 Session 对象, 如果无任何创建参数, 会话构造器
    将启动默认图.
    欲了解完整的会话 API, 请阅读Session 类.

    # 启动默认图.
    sess = tf.Session()
    # 调用 sess 的 'run()' 方法来执行矩阵乘法 op, 传入 'product' 作为该方法的参数.
    # 上面提到, 'product' 代表了矩阵乘法 op 的输出, 传入它是向方法表明, 我们希望取回
    第 1 章 起步 | 21
    # 矩阵乘法 op 的输出.
    #
    # 整个执行过程是自动化的, 会话负责传递 op 所需的全部输入. op 通常是并发执行的.
    #
    # 函数调用 'run(product)' 触发了图中三个 op (两个常量 op 和一个矩阵乘法 op) 的执行.
    #
    # 返回值 'result' 是一个 numpy `ndarray` 对象.
    result = sess.run(product)
    print result
    # ==> [[ 12.]]
    # 任务完成, 关闭会话.
    sess.close()
    多思考也是一种努力,做出正确的分析和选择,因为我们的时间和精力都有限,所以把时间花在更有价值的地方。
  • 相关阅读:
    PLSQL WEBSERVICES 发布
    WebService开发指南
    来自10位成功IT人士的23条经验教训
    图片格式区别:png8,png24,jpg,jpeg,gif,webp
    当你在工作中失去动力时该怎么办?
    面向对象的反思
    关于前端面试的一些心得
    有什么好的交友软件吗?求推荐
    区块链开发的11种顶级编程语言
    CSRF的几种防御方法的利弊分析
  • 原文地址:https://www.cnblogs.com/LiuXinyu12378/p/11207507.html
Copyright © 2011-2022 走看看