zoukankan      html  css  js  c++  java
  • TensorFlow学习笔记(1)—— 基本概念与框架

    入门框架时的常见问题

    学习框架的原因?

    • 方便、易用

    学习框架的哪些知识点?

    • 掌握一个项目的基本流程,就知道需要学习哪些知识点了

    迅速学习框架的方法

    • 根据项目每块流程的需要针对性的学
    • 可以看官方的入门教程

    TensorFlow快速入门思维导图

    (图)

    TensorFlow的高级API

    TF SLIM:一个可以定义、训练和评估复杂模型的轻量库(用到的时候详细说)

    TF Learn(tf.contrib.learn):类似于scikit-learn的接口

    其他:Keras等

    TensorFlow学习要点

    • 数据类型
    • 运行机制
    • 数据的I/O
    • 模型的训练
    • 模型的保存
    • 模型的调用

    TensorFlow的基本开发流程

    项目流程

    数据预处理->模型训练->模型保存->模型预测

    • 数据预处理:数据准备、数据清洗、特征工程、归一化处理
    • 神经网络与传统的机器学习不同,不需要做大量特征工程之后喂入特征,只需要设置好网络结构,输入原始数据即可完成训练。
    • 可以先对原始数据做归一化的处理,避免训练误差。

    编写TensorFlow的两个步骤

    1. 构建计算图graph
    2. 使用Session去执行graph中的operation

    其中涉及的基本定义

    Tensor

    1. 类型化的多维数组,是图的边

    2. ???是N维的矩阵,可以看做一种符号化的句柄,指向存储运算结果吗,执行之后返回的基本类型,例如numpy的数组、list等

    3. 创建方法:

      1. tf.zeros()
      2. tf.ones()
      3. tf.fill()
      4. tf.constant()
      5. tf.random_uniform()
      6. tf.random_normal()
      7. ......
    4. 三个属性:rank、shape、data_type

      • Rank:指的是数据的数据的维度,与线性代数中的rank不是一个概念

        (图)

        rank = 0(标量)、1(向量)、2(矩阵)、3~n(n维Tensor)

        注意rank与shape之间的关系!

      • Shape:指的是Tensor每个维度数据的个数,可以用Python的list/tuple表示

        Rank和Shape之间的关系:

        (图)

      • Data_type:是指单个数据的类型。常用DT_FLOAT,也就是32位的浮点数。

        所有的Types如下:

        (图)

    Operation

    1. 执行计算的单元,图的节点
    2. 是一个符号化的运算过程,是TensorFlow中的基本单元。是Graph中的计算节点,输入和输出均为Tensor
    3. 创建方法:
      1. tf.add()
      2. ......

    Graph

    1. 一张有边与点的图,其表示了需要进行计算的任务

    2. TensorFlow中使用tf.Graph表示可计算的图,图是由操作Operation和张量Tensor构成的,其中Operation表示图的节点(即为运算单元),而Tensor则表示图的边(即为在Op之间流动的数据单元)

    3. 创建方法:

      • tf.Graph._ init _()(MK语法限制,下划线无空格):创建一个新的空Graph

      • 在TF中本身存在一个默认的Graph,若直接使用则不需要再创建图

      • 在with中调用tf.Graph().as_default()这个方法,可以设置默认的计算图

        (图)

    Session

    1. 称之为会话的上下文,用于执行图

    2. 提供Operation执行和Tensor求值的环境

      (图)

    3. 分布式运算的使用,指定GPU/CPU

    4. 释放资源

      • 调用session.close()方法

        (图)

      • 使用with tf.Session()创建上下文(Context)来执行,当上下文退出时,资源将自动释放

        (图)

    三大基本概念之间的关系如下:

    (图)

    Tensor和Operation都是Graph的对象,Operation是图的节点,而Tensor作为边,将Op连接起来。而Graph又必须在Session中才能执行

    例子一

    (图)

    • 在Tf中定义和执行这个计算图的操作时分开来的。
    • 创建一个完整的计算过程:
      1. 创建Tensor
      2. 添加Operation
      3. 创建Session,运行Graph
    • 这个图里有3个Operation,输入不是Operation但是输出是,因为输出可以执行计算,但是输入不行。
    • Operation添加之后不会立即执行,TensorFlow将等待所有的Operation均添加到Graph中后,根据最终的输出需要运算相应的Operation。

    TensorFlow中的基本函数

    Veriable

    1. 作用:保存并且更新参数,保存在内存中

    (未完待续)

  • 相关阅读:
    UVa 1349 (二分图最小权完美匹配) Optimal Bus Route Design
    UVa 1658 (拆点法 最小费用流) Admiral
    UVa 11082 (网络流建模) Matrix Decompressing
    UVa 753 (二分图最大匹配) A Plug for UNIX
    UVa 1451 (数形结合 单调栈) Average
    UVa 1471 (LIS变形) Defense Lines
    UVa 11572 (滑动窗口) Unique Snowflakes
    UVa 1606 (极角排序) Amphiphilic Carbon Molecules
    UVa 11054 Wine trading in Gergovia
    UVa 140 (枚举排列) Bandwidth
  • 原文地址:https://www.cnblogs.com/LYT-Dveloper/p/11255930.html
Copyright © 2011-2022 走看看