• tensorflow中的基本概念


    本文是在阅读官方文档后的一些个人理解。

    官方文档地址:https://www.tensorflow.org/versions/r0.12/get_started/basic_usage.html#basic-usage

     

    关于tensor和op的理解

    Nodes in the graph are called ops (short for operations).
    An op takes zero or more Tensors, performs some computation, and produces zero or more Tensors.

    类比:一个神经元有多个输入,一个或者多个输出。这里的OP可以看作神经元,tensor可以看作输入的数据。


    In TensorFlow terminology, a Tensor is a typed multi-dimensional array.
    For example, you can represent a mini-batch of images as a 4-D array of floating point numbers with dimensions [batch, height, width,channels].

    tensor是一个数组,每个数组元素是多维的,其实就是一个矩阵。

    TensorFlow程序的阶段

    TensorFlow程序通常被组织成一个构建阶段和一个执行阶段。在构建阶段,op 的执行步骤被描述成一个图。在执行阶段,使用会话执行执行图中的op。

    阶段一:如何构建图?

    1.构建图从创建op开始。有些op的创建是不需要input的,比如Constant。这样的op被成为源op(source op)。
    2.在python中op对象是由op构造器(ops constructors)创建的。op构造器创建一个op对象时可以传递一个源op作为待构造op对象的输入。
    3.op对象被op构造器创建后是作为一个node加入到graph中的。TensorFlow Python 库有一个默认图 (default graph), op 构造器可以为其增加节点。这个默认图对许多程序来说已经足够用了。

    总结:因为graph是由op对象组成的,所以构建图的过程其实就是创建op对象的过程,以及如果将这些个op对象连接起来(比如某个op对象作为另外某个op对象的输入)的过程。

    阶段二:图构建好了,如何执行?

    1.因为graph需要在session中启动。所以为了启动一个graph,第一步就是创建session对象。
    2.sessoin对象创建的时候如果不制定graph,则使用默认图(default graph)。

    对Variable的理解

    变量用于维护图执行过程中的状态信息。

    通常会将一个统计模型中的参数表示为一组变量。 例如, 你可以将一个神经网络的权重作为一个tensor存储在某个变量中。在训练过程中, 通过重复运行训练图,更新这个 tensor。

     

    对feeds和fetches的理解

    可以为任意的op赋值或者从其中获取数据。

     

    对于tensor、Constants、Variables三者的理解

    tensor存储在Constants或者Variables。就像数据可以放在常量和变量中一样。放在变量中的数据是可以修改的,放在常量中的数据是不可以修改的。

    常量op也算是op吧,只是比较简单而已。

  • 相关阅读:
    public、private、protected继承的规则
    派生类对象的构造函数与析构函数
    类的保护成员
    派生类覆盖(修改)基类成员
    条款03:尽可能使用const
    处理类与类之间的关系
    继承派生基本概念
    条款02:尽量以const,enum,inline替换#define(宁可编译器替代预处理器)
    Redis持久化AOF和RDB对比
    Memcached取模算法
  • 原文地址:https://www.cnblogs.com/tsiangleo/p/6145112.html
Copyright © 2020-2023  润新知