转自:https://www.cnblogs.com/tsiangleo/p/6145112.html

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

官方文档地址: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吧,只是比较简单而已。

tensorflow中的ops(或者说op)的理解相关推荐

  1. TensorFlow中出现Incompatible shapes between op input and calculated input gradient

    Tensorflow反卷积操作中Incompatible shapes between op input and calculated input gradient问题解决办法 欢迎使用Markdow ...

  2. tensorflow中对lstm及双向lstm的理解

    双向RNN(LSTM)的实现参考: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_Neural ...

  3. TensorFlow 中文文档 介绍

    介绍 本章的目的是让你了解和运行 TensorFlow 在开始之前, 先看一段使用 Python API 撰写的 TensorFlow 示例代码, 对将要学习的内容有初步的印象. 这段很短的 Pyth ...

  4. tensorflow中name_scope和variable_scope变量的使用

    1. variable_scope的使用 首先,使用variable_scope可以很方便的管理get_varibale. 如何确定 get_variable 的 prefixed name? 1.1 ...

  5. tensorflow没有这个参数_解决TensorFlow中Batch Normalization参数没有保存的问题

    batch normalization的坑我真的是踩到要吐了,几个月前就踩了一次,看了网上好多资料,虽然跑通了但是当时没记录下来,结果这次又遇到了.时隔几个月,已经忘得差不多了,结果又花了半天重新踩了 ...

  6. Tensorflow中的各种梯度处理gradient

    最近其实一直想自己手动创建op,这样的话好像得懂tensorflow自定义api/op的规则,设计前向与反向,注册命名,注意端口以及文件组织,最后可能还要需要重新编译才能使用.这一部分其实记得tens ...

  7. 【Tensorflow】op的理解和自定义损失函数

    tensorflow中的基本概念 本文是在阅读官方文档后的一些个人理解. 官方文档地址:https://www.tensorflow.org/versions/r0.12/get_started/ba ...

  8. 关于TensorFlow中的多图(Multiple Graphs)

    一.摘要 TensorFlow中的图(Graph)是众多操作(Ops)的集合,它描述了具体的操作类型与各操作之间的关联.在实际应用中,我们可以直接把图理解为神经网络(Neural Network)结构 ...

  9. TensorFlow实战:TensorFlow中的CNN

    这里按照官方api介绍官方api点这里 卷积 不同的ops下使用的卷积操作总结如下: conv2d:Arbitrary filters that can mix channels together(通 ...

最新文章

  1. 算法面试:精选微软经典的算法面试100题(第1-20题)
  2. Android而一个超级漂亮的日历控件
  3. MikroTik RouterOS获取在线终端和在线IP总数并自动对IP做限速(转)
  4. Disruptor编程指南
  5. C# Redis实战(七)
  6. html文档基本结构由哪三对,第3章 网页制作及HTML语言基本结构简介.ppt
  7. 在Ubuntu上运行C++程序
  8. Linux 安装 MySQL 数据库
  9. Python编写API接口
  10. Echarts制作动态K线图和分时图
  11. 传奇修改map地图教程_传奇地图事件触发脚本教程
  12. 高精度数字温度传感器为基于RTD和医疗应用的设计带来简便性
  13. 喜马拉雅 批量重命名
  14. 心电图前波过多_心电图老也搞不清的那些波啊——δ波
  15. 移动网流量用户身份识别系统的源代码_护照阅读器识别身份证、护照、港澳通行证 、军官证...
  16. Django刨坑记-- Anaconda3 环境报错
  17. 杨辉三角 C语言实现【一维数组】
  18. 微信小程序实战教程-闫涛-专题视频课程
  19. Matlab:数学之美--绘制分形图形
  20. 如何根据图片换算出中轴大小?

热门文章

  1. 米4用linux刷机救转,小米Mi4(小米4 电信4G版)手机快速救砖,线刷教程分享,小白轻松救活手机...
  2. 本地通过配置代理访问远端服务器
  3. 100个统计学 R语言学习资源网站
  4. 1024竟是官方节日,祝大家节日快乐
  5. MATLAB 声音文件分析、处理。
  6. poi版本冲突导致连续报错NoSuchMethodError、VerticalAlignment无法转换为short和ClassNotFoundException的解决办法及兼容性问题解决
  7. tplink里的DMZ主机是什么意思
  8. BufferedWriter的用法
  9. vs启动错误:Exception Processing Message 0xc0000005 Parameters...
  10. 使用局域网为手机部署安装包