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 ...
随机推荐
- vue 结合localStorage 来双向绑定数据
结合localStorage 来双向绑定数据(超级神奇) localStorage.js: const STORAGE_KEY = 'todos_vuejs' export default { fet ...
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- Verilog HDL test bench 문법에 관한
16bit ripple carry adder test bench `timescale 1ns/1ns module testbench2; reg [15:0] a, [15:0] b, c_ ...
- 版本控制器-VSS和SVN区别
SVN 默认的工作方式和VSS不同, VSS是[锁定-修改-解锁],VSS是一个人在改的时候必须以独占的方式签出文件,导致其他人不能够修改.用VSS经常要问同事:"改完没,签入一下" ...
- 非侵入式Ajax
基本准备 首先,新建一个ASP.NET MVC 3的空项目. 然后新增一个Model,代码如下: using System; using System.Collections.Generic; usi ...
- TPM Key相关概念
1. Storage Keys:存储密钥,用来加密数据和其它密钥的通用非对称密钥,这里的其它密钥可以是另外一个存储密钥,也可以是绑定密钥或签名密钥.它本身是长度2048bit的RSA私钥:它既可以是可 ...
- BitMap、Geo、HyperLogLog
前言 Reids 在 Web 应用的开发中使用非常广泛,几乎所有的后端技术都会有涉及到 Redis 的使用.Redis 种除了常见的字符串 String.字典 Hash.列表 List.集合 Set. ...
- Laravel5.1 模型--查询作用域
所谓的查询作用域就是允许你自定义一个查询语句 把它封装成一个方法. 1 定义一个查询作用域 定义查询作用域就是在模型中声明一个scope开头的方法: public function scopeHotA ...
- okhttp 通过网关请求服务端返回数据
1.启动类代码 package com.tycoon.service; import org.springframework.boot.SpringApplication; import org.sp ...
- cocos2d-x:Layer::setPosition
如果Node的实际类型是Layer或者其派生类, setPosition是不是有猫腻? std::string menuImage = "menu.png"; auto menuI ...