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. [C] Re-execute itself from elf file.

    Re-execute itself from elf file. #define _GNU_SOURCE #include <sched.h> #include <stdio.h&g ...

  2. AppDomain (转)

    AppDomain是CLR的运行单元,它可以加载Assembly.创建对象以及执行程序.AppDomain是CLR实现代码隔离的基本机制. 每一个AppDomain可以单独运行.停止:每个AppDom ...

  3. mysql的sql语句优化方法面试题总结

    mysql的sql语句优化方法面试题总结 不要写一些没有意义的查询,如需要生成一个空表结构: select col1,col2 into #t from t where 1=0 这类代码不会返回任何结 ...

  4. 前端之CSS基础

    前端之CSS 1. CSS CSS定义如何显示HTML元素. 当浏览器读到一个样式表,他就会按照这个样式表来对文档进行格式化(渲染). 3.CSS语法 1)CSS实例 每个CSS由两部分组成: 选择器 ...

  5. 入手node

    一.安装node(查询使用npm) 二.安装淘宝镜像(查询使用cnpm,安装淘宝镜像之后下载速度会更快) 三.安装相关资料时,在预安装的文件夹使用: shift + 右键, 打开命令行窗口,进入终端

  6. wordpress系统网站访问慢的解决方案

    从2013年5月底开始,google在中国基本处于无法访问状态,谷歌官网 域名,香港域名均无法访问,就连之前的IP访问方法也都失效,而Google Adsense打不开,恐怕做谷歌联盟的站长也要倒霉了 ...

  7. 输vim /etc/rc.d/init.d/mysqld 报错 …..localdomain.pid

    在安装MySQL的过程中出现以下错误: 本人解决方法是: ps aux | grep mysqld 罗列出所有关于mysqld的进程,然后把关于mysqld的进程都kill了.

  8. cmd获取管理员权限等

    鼠标点点点的略过 可输入命令 runas /user:Administrator cmd 或 runas /noprofile /user:Administrator cmd Administrato ...

  9. FreeRTOS之taskYIELD()

    摘自:http://www.mcuchina.com/article/2007/1227/article_59.html 1.taskYIELD()   比如我创建了8个优先级一样的task,并且没有 ...

  10. JavaWeb(七):EL表达式、自定义标签和JSTL

    一.EL表达式 语法 el.jsp <%@page import="java.util.Date"%> <%@page import="com.atgu ...