TensorFlow学习笔记1-入门


作者: YunYuan


写在前面

本笔记是我学习TensorFlow官方文档中文版的读书笔记,由于尚未搭建好Github的个人博客的评论功能,故尚不方便与各位交流。如有问题,可邮箱联系。

TensorFlow运算的本质是有状态的数据流式图。TensorFlow的直译是“流动的张量”。

特点:计算模型简洁灵活,计算性能显著提升,支持更多的异构计算系统。

一些概念:

  • 有向图(计算图):由节点(node)和边(edge)组成。节点表示运算操作,节点与节点之间的是边。整个计算图描述了计算流程。
  • 节点:表示运算操作,每个节点可以有任意多的输入和任意多的输出。
  • 边:在中流动(flow)的是张量(tensor)。
  • 有一种特殊的边没有数据流动,这种边是依赖控制。作用是让它的起始节点执行完再执行目标节点,从而进行控制。

简单的有向图示例如图:

其代码表示为:

import tensorflow as tf
b=tf.Variable(tf.zeros([100])) # 生成100维的向量,初始化为0
W=tf.Variable(tf.random_uniform([784,100],-1,1)) # 生成784x100的随机矩阵W
x=tf.placeholder(name="x") # 输入的Placeholder relu=tf.nn.relu(tf.matmul(W, x)+b) # ReLU(Wx+b)
C=[...] # 根据ReLU函数的结果计算Cost s=tf.Session()
for step in range(0, 10):
input=...construct 100-D input array... # 为输入创建一个100维的向量
result=s.run(C, feed_dict={x: input}) # 获取Cost,供给输入x
print(step, result)

在代码中,Variable表示参量,即你要训练的参数,而Placeholder表示输入数据,即训练集。

TensorFlow内建运算操作

  • 标量运算:Add、Sub、Mul、Div、Exp、Log、Greater、Less、Equal
  • 向量运算:Concat、Slice、Split、Constant、Rank、Shape、Shuffle
  • 矩阵运算:MatMul、MatrixInverse、MatrixDeterminant
  • 带状态的运算:Variable、Assign、AssignAdd
  • 神经网络组件:SoftMax、Sigmoid、ReLU、Convolution2D、MaxPooling
  • 存储、恢复:Save、Restore
  • 队列及同步运算:Enqueue、Dequeue、MutexAcquire、MutexRelease
  • 控制流:Merge、Switch、Enter、Leave、NextIteration

更进一步

sess.run()函数里的参数通常有两种:

  • 一种是tensor,将feed_dict中的数据送进计算图中计算一次,并取出tensor

  • 另一种是train=optimizer.minimize(loss),即训练动作(对loss进行优化),每执行一次sess.run(train)会优化一次。


参考资料

  1. TensorFlow官方文档中文版
  2. 黄文坚 唐源, TensorDlow实战 , 201703, 电子工业出版社

TensorFlow学习笔记1-入门的更多相关文章

  1. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

  2. 深度学习-tensorflow学习笔记(2)-MNIST手写字体识别

    深度学习-tensorflow学习笔记(2)-MNIST手写字体识别超级详细版 这是tf入门的第一个例子.minst应该是内置的数据集. 前置知识在学习笔记(1)里面讲过了 这里直接上代码 # -*- ...

  3. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  4. TensorFlow学习笔记(一)

    [TensorFlow API](https://www.tensorflow.org/versions/r0.12/how_tos/variable_scope/index.html) Tensor ...

  5. Tensorflow学习笔记No.10

    多输出模型 使用函数式API构建多输出模型完成多标签分类任务. 数据集下载链接:https://pan.baidu.com/s/1JtKt7KCR2lEqAirjIXzvgg 提取码:2kbc 1.读 ...

  6. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

    简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...

  7. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  8. WebSocket学习笔记——无痛入门

    WebSocket学习笔记——无痛入门 标签: websocket 2014-04-09 22:05 4987人阅读 评论(1) 收藏 举报  分类: 物联网学习笔记(37)  版权声明:本文为博主原 ...

  9. Tensorflow学习笔记2019.01.22

    tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...

  10. Tensorflow学习笔记2019.01.03

    tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...

随机推荐

  1. BZOJ 4552(二分+线段树+思维)

    题面 传送门 分析 此题是道好题! 首先要跳出思维定势,不是去想如何用数据结构去直接维护排序过程,而是尝试二分a[p]的值 设二分a[p]的值为x 我们将大于x的数标记为1,小于等于x的数标记为0 则 ...

  2. Version Controlling with Git in Visual Studio Code and Azure DevOps

    Overview Azure DevOps supports two types of version control, Git and Team Foundation Version Control ...

  3. vue使用canvas生成海报图

    有个挺好用的插件能很好地实现vue生成海报图,虽然有一定的限制,但基本需求还是能实现的 1.安装 npm i vue-canvas-poster --save 2.全局配置 // or Global ...

  4. Vue —— You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file.问题

    方法1: 在build/webpack.base.conf.js文件中,找到module->rules中有关eslint的规则,注释或者删除掉就可以了 module: { rules: [ // ...

  5. css炫酷动画收藏

    1.按钮.hover.input动画(cssfx) https://cssfx.dev/ 2.svg 矢量定制icon(ikonate) https://www.ikonate.com/#conten ...

  6. iOS App中 使用 OpenSSL 库

    转自:http://blog.csdn.net/kmyhy/article/details/6534067 在你的 iOS App中 使用 OpenSSL 库 ——译自x2on的“Tutorial: ...

  7. HashMap、Hashtable和ConcurrentHashMap的区别

    HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相 ...

  8. 洛谷 P2783 有机化学之神偶尔会做作弊(Tarjan,LCA)

    题目背景 LS中学化学竞赛组教练是一个酷爱炉石的人. 有一天他一边搓炉石一边监考,而你作为一个信息竞赛的大神也来凑热闹. 然而你的化竞基友却向你求助了. “第1354题怎么做”<--手语 他问道 ...

  9. 八个JS中你见过的类型。

    1.布尔类型 布尔值只能为  true 或者 false ,其他的会报错 let bool: boolean = false; bool = true; // bool = 123; // error ...

  10. AJAX——理解XMLHttpRequest对象

    AJAX大家已经都知道了,XMLHttpRequest对象则是AJAX的核心.这篇博客重点总结一下这个对象的使用. XMLHttpRequest对象的属性和方法: 属性 说明 readyState 表 ...