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. 作用:保存并且更新参数,保存在内存中

    (未完待续)

  • 相关阅读:
    Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成
    WebView,我已经长大了,知道自己区分是否安全了!
    “崩溃了?不可能,我全 Catch 住了” | Java 异常处理
    Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0
    图解:HTTP 范围请求,助力断点续传、多线程下载的核心原理
    c/c++ 读入一行不确定个数的整数
    LeetCode:Length of Last Word
    LeetCode:Permutation Sequence
    机器学习:判别模型与生成模型
    LeetCode:Jump Game I II
  • 原文地址:https://www.cnblogs.com/LYT-Dveloper/p/11255930.html
Copyright © 2011-2022 走看看