Tensorflow瞎搞
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瞎搞的更多相关文章
- URAL 1203. Scientific Conference(瞎搞)
题目链接 本来觉得这不是经典的贪心吗..果断水一次,wa了,看了看discuss,发现貌似不好水,土土的DP了一下,复杂度很高了,又T了...然后想想单调队列,二分什么的...不好往上加,直接搞了标记 ...
- Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞
Problem H. Horrible Truth Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1006 ...
- B. Salty Fish Go! -期望题(瞎搞题)
链接:https://www.nowcoder.com/acm/contest/104/B来源:牛客网 题意:A few days ago, WRD was playing a small game ...
- HDU5532 Almost Sorted Array(最长上升子序列 or 瞎搞个做差的数组)
题目链接:点我 题意:给定一个序列,询问是否能删除一个数让它成为非递减或者非递增的序列. 比如说 删除后的序列是1 3 3 5 或者5 3 3 1 或者1 3 5 或者5 3 1 都可以.只要满足删掉 ...
- TOJ3097: 单词后缀 (字典树 or map瞎搞)
传送门 (<---可以点击的~) 时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte 描述 有些英语单词后缀都是一样的,现在我们需要从给定的一堆单词里 ...
- 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 ...
- ubuntu--基础环境瞎搞集合
安装ubuntu系统后有很多东西需要自己瞎搞一下,这里把一些瞎搞的过程记录在这里,方便以后重新装系统后重新配置. 一.安装. 可以在windows下制作启动盘(软碟通),然后开机u盘启动即可安装,预留 ...
- Codeforces631C【栈维护+瞎搞】
题意: 百度. 思路: 如果该查询的R比前面的所有都大,那么前面所有都失效. 那么我先预处理出这些有效的. 那最坏的情况不就是栈里面元素(R)很多 n,n-1,n-2,n-3,n-4而且都是相反排序的 ...
- 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 ...
随机推荐
- linux 实时显示文件的内容
1. watch -n 1 aa.txt #每个1秒显示aa.txt的内容 2. tail -f ***.log Linux shell中有一个tail命令,常用来显示一个文件的最后n行文档内容 但 ...
- mongo aggregate
https://cnodejs.org/topic/59264f62855efbac2cf7a2f3 背景 现有1000条学生记录,结构如下: { name:String,//名称 clazz:{ty ...
- MySql(一):linux 安装mysql数据库——yum安装法
mysql数据库有多种安装方式,本文只介绍在Linux服务器上最实用.最快捷的mysql server安装方法.一.Linux服务器yum安装(CentOS6.3 64位)所有在服务器上执行的命令,都 ...
- C++语言基础(16)-string类
使用 string 类需要包含头文件<string>,下面的例子介绍了几种定义 string 变量(对象)的方法: #include <iostream> #include & ...
- Android JNI和NDK学习(03)--动态方式实现JNI(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092491.html 前面总结了静态实现JNI的方法,本文介绍如何动态实现J ...
- static关键字 综合小应用
package unit4; import com.sun.java_cup.internal.version; public class Voter { private static int MAX ...
- WebAssembly,Web的新时代
在浏览器之争中,Chrome凭借JavaScript的卓越性能取得了市场主导地位,然而由于javascript的无类型特性,导致其运行时消耗大量的性能做为代价,这也是JavaScript的瓶颈之一.W ...
- JS方法代理
作者:Jiang, Jilin JS作为一门脚本语言.十分easy上手.外加其灵活性,能够轻而易举地扩展功能.今天,我们就聊聊JS的方法代理. 方法代理是脚本语言中常见的方法扩展形式.这样的灵活的形式 ...
- Erlang 和 Elixir的差异
原文: http://elixir-lang.org/crash-course.html 函数调用 Elixir允许你调用函数的时候省略括号, Erlang不行. Erlang Elixir some ...
- html中div获取焦点,去掉input div等获取焦点时候的边框
经测试只有在IE chrome才会在获取焦点时有边框 使用CSS div{ outline:none; } DIV焦点事件详解 --[focus和tabIndex] 摘自:http://my.osc ...