Tensorflow为张量从流图的一端流动到另一端的计算过程,Tensorflow也可以看成是将复杂的数据结构传输至人工智能神经网络中进行分析和处理的系统。

张量概念是矢量概念的推广,矢量是一阶张量。张量是一个可用来表示一些矢量、标量和其他张量之间的线性关系的多线性函数。

一阶张量来表示向量,如v=[1,2,3,4,5];用二阶张量表示矩阵,如m=[[1,2,3],[4,5,6],[7,8,9]]

在介绍flow之前,需要知道的是在Tensorflow中,数据流图使用“结点”和“边”的有向图来描述数学计算。“结点”一般用来表示施加的数学操作,但也是可以表示数据输入(feed in)的起点和输出的终点(push out),或者是读取/写入持久变量的终点。“边”表示“节点”之间的输入/输出关系。

当张量从图中流过时,就产生了“flow”,一旦输入端的所有张量准备好,节点将被分配到各种计算设备异步并行地完成执行运算,即数据开始飞起来。

边分为两种,一是正常边,即数据tensor流动的通道,在正常边上可以自由地计算数据。

第二种边是一种特殊边,又称为“控制依赖”边,其作用是控制节点之间相互依赖,在边的上一个节点完成运算前,特殊的节点不会被执行,即数据的处理要遵循一定的顺序。其次特殊边还有一个作用是为了多线程运行数据的执行,让没有前后依赖顺序的数据计算能够分开执行,最大效率地利用系统设备资源。

最后需要介绍地一个概念就是“会话”(session)。会话是tensorflow的主要交互方式,一般而言,Tensorflow处理数据的流程是:建立会话、生成一张空图、添加各个节点和边,形成一个有连接点的图,然后启动图,进行系统的执行。

Tensorflow基本架构

client:用户会使用,与Master和一些worker process交流

master:用来和客户端交互,同时调度任务

worker process:工作节点,每个worker process可以访问一到多个device

device:Tensorflow的计算核心,通过将device的类型、job名称、在worker process中的索引将device命名。可以通过注册机制来添加新的device实现,每个device实现需要负责内存分配和管理调度Tensorflow系统所下达的核运算需求。

类似于分布式系统,Master是系统的总的调度师,对所有的任务和工作进行调度;client提出需求,对任务做出具体的设定和结果要求;worker process是工作节点,是单任务的监视器;device是任务的具体执行和分配节点,所有的具体计算结果都在device下进行处理。

Tensorflow程序设计

步骤一:导入程序所需要使用的包

步骤二:将W,b定义为变量。将x,y定义为占位符,类似于填子弹的过程。使数据像子弹一样源源不断地填入Tensorflow程序中。

步骤三:前馈方式构造网络

步骤四:构造损失函数

步骤五:构造梯度

步骤六:用一个会话,run来执行

Tensorflow瞎搞的更多相关文章

  1. URAL 1203. Scientific Conference(瞎搞)

    题目链接 本来觉得这不是经典的贪心吗..果断水一次,wa了,看了看discuss,发现貌似不好水,土土的DP了一下,复杂度很高了,又T了...然后想想单调队列,二分什么的...不好往上加,直接搞了标记 ...

  2. Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞

    Problem H. Horrible Truth Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1006 ...

  3. B. Salty Fish Go! -期望题(瞎搞题)

    链接:https://www.nowcoder.com/acm/contest/104/B来源:牛客网 题意:A few days ago, WRD was playing a small game ...

  4. HDU5532 Almost Sorted Array(最长上升子序列 or 瞎搞个做差的数组)

    题目链接:点我 题意:给定一个序列,询问是否能删除一个数让它成为非递减或者非递增的序列. 比如说 删除后的序列是1 3 3 5 或者5 3 3 1 或者1 3 5 或者5 3 1 都可以.只要满足删掉 ...

  5. TOJ3097: 单词后缀 (字典树 or map瞎搞)

    传送门 (<---可以点击的~) 时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte 描述 有些英语单词后缀都是一样的,现在我们需要从给定的一堆单词里 ...

  6. 8VC Venture Cup 2016 - Elimination Round B. Cards 瞎搞

    B. Cards 题目连接: http://www.codeforces.com/contest/626/problem/B Description Catherine has a deck of n ...

  7. ubuntu--基础环境瞎搞集合

    安装ubuntu系统后有很多东西需要自己瞎搞一下,这里把一些瞎搞的过程记录在这里,方便以后重新装系统后重新配置. 一.安装. 可以在windows下制作启动盘(软碟通),然后开机u盘启动即可安装,预留 ...

  8. Codeforces631C【栈维护+瞎搞】

    题意: 百度. 思路: 如果该查询的R比前面的所有都大,那么前面所有都失效. 那么我先预处理出这些有效的. 那最坏的情况不就是栈里面元素(R)很多 n,n-1,n-2,n-3,n-4而且都是相反排序的 ...

  9. BZOJ 4236: JOIOJI map瞎搞

    分别记录J,O,I,的个数 cnt[char][i] 表示处理到第i位,char的个数 显然当且仅当 cnt[J][i] - cnt[O][i] == cnt[J][j-1] - cnt[O][j-1 ...

随机推荐

  1. POJ 3667 Hotel(线段树)

    POJ 3667 Hotel 题目链接 题意:有n个房间,如今有两个操作 1.找到连续长度a的空房间.入住,要尽量靠左边,假设有输出最左边的房间标号,假设没有输出0 2.清空[a, a + b - 1 ...

  2. rsync for windows 详细使用教程

    rsync for windows 详细使用教程内容简介:rsync在windows与windows服务器之间的同步设置 1.准备两台机器: server-----192.168.0.201 clie ...

  3. linux 自启动

    使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:chkconfig --list可能输出如下:openvpn 0:关闭 1:开启 ...... 6:关闭 ...

  4. ORA-1092 : opitsk aborting process---killed by oom killer

    oracle version:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production os versi ...

  5. 集成学习1-Boosting

    转自http://blog.csdn.net/lvhao92/article/details/51079018 集成学习大致分为两类,一类串行生成.如Boosting.一类为并行化.如Bagging和 ...

  6. 283. Move Zeroes【easy】

    283. Move Zeroes[easy] Given an array nums, write a function to move all 0's to the end of it while ...

  7. formail 发送HTML 邮件通过 SENDMAIL

    cat a.html | formail -I "Content-type:text/html;charset=utf-8" -I "Subject:layer4 con ...

  8. 李洪强漫谈iOS开发[C语言-003]-开发概述程序设计语言

    李洪强iOS开发之程序设计语言 printf 是打印的意思- 格式化输出 f: format 格式化 C语言编译器 编译器的功能就是将高级语言的源代码,翻译成机器可以识别的二进制文件就是可执 行文件- ...

  9. 李洪强iOS开发之OC[006] - 类和对象

  10. mysql之select into outfile

    参见:http://dev.mysql.com/doc/refman/5.1/en/select-into.html 例子: SELECT a,b,a+b INTO OUTFILE '/tmp/res ...