1、TensorFlow如何工作?
- TensorFlow特殊的张量计算引擎使得TensorFlow能够很好的满足机器学习的计算需要,从2015年开始发起
- 本书基于TensorFlow0.12+和python3.0+
- 环境安装要求
- pip install -r requirements.txt
- TensorFlow计算的一般流程
- 生成或者导入数据generate or import data
- 所有的机器学习算法都需要数据,在这里我们可以自己生成数据或者使用外部数据,有的时候可以更好地依赖于生成的数据,因为我们想知道期望的结果,有的时候我们会选择使用公开的数据集。
- 转换或者是正则化数据 transform or normalize data
- 有的时候数据并不是TensorFlow能够接受的期望的形式,比如说数据的维度不对或者是数据的类型不对,所以我们必须要在使用之前对数据进行转换处理,大部分的算法需要对数据进行正则化处理,TensorFlow提供了可以正则化处理数据的功能
- data=tf.nn.batch_norm_with_global_normalization(...)
- 设置算法的参数set algorithm parameters
- 我们的算法通常在整个处理过程当中都需要参数,比如说:迭代次数,学习率或则我们选择的其他的固定参数,我们应该以一种良好的形式去初始化那些所有的参数,以便方便我们能够方便用户可以很好的使用它们。
- learning_rate=0.01 iterations=10000
- 初始化变量和占位符initialize variables and placeholders
- tensorflow依赖于用户告诉它们如何进行更改,TensorFlow会在优化过程当中不断的更新变量以减小损失函数,为了做到这些,所以我们需要给占位符喂数据,我们需要初始化所有的那些变量和参数,给以适当的数据类型type和大小size,所以使TensorFlow知道接下来应该怎么做,
- a_var=tf.constant(42)
- x_input=tf.placeholder(tf.float32,[None,input_size])
- y_input=tf.placeholder(tf.float32,[None,num_class])
- 定义模型结构Define Model Structure
- 当我们有了数据,初始化了所有的变量和占位符,接下来我们就应该定义模型结构了,通过构建一个计算图computational graph,我们告诉TensorFlow应该在变量和参数上面执行什么操作以便能够达到我们期望的目的,接下来就计算图将会进行更多的讨论
- y_pred=tf.add(tf.mul(x_input,weights_matrix),b_matrix)
- 定义损失函数declare loss functions
- 定义了模型结构之后,我们开始计算输出,这就是我们为什么定义了损失函数,损失函数的重要之处在于能够告诉我们预期值距离实际值的距离,更多不同的期望函数在接下来会有介绍
- loss=tf.reduce_mean(tf.square(y_actual-y_pred))
- 初始化并且开始训练模型initialize and train model
- 现在我们已经具备了一切,然后开始创建一个实例或者我们的计算图通过给计算图喂入数据,然后让TensorFlow更好的能够改变变量和进行预测我们的训练数据,下面是初始化计算图的一种方式
- with tf,Session(graph=graph) as session:
- session.run()
- 我们可以使用另外一种方式
- session=tf.Session(graph=graph) session.run(....)
- (可选)评估模型 Evaluate the model
- 当我们构建训练完我们的模型之后,我们通过使用新的数据按照一些特定标准来评估我们的模型
- (可选)预测新的结果
- 总结Summary
- 总体来说,在TensorFlow当中可以设计为如下的循环结构
- 通过占位符喂入数据,
- 估算计算图的输出
- 通过损失函数计算期望结果
- 使用反向自动求导更新模型变量
- 重复以上过程直到满足某一个特定的标准
- (完)
附件列表
1、TensorFlow如何工作?的更多相关文章
- Tensorflow学习笔记(一):MNIST机器学习入门
学习深度学习,首先从深度学习的入门MNIST入手.通过这个例子,了解Tensorflow的工作流程和机器学习的基本概念. 一 MNIST数据集 MNIST是入门级的计算机视觉数据集,包含了各种手写数 ...
- (转)TensorFlow 入门
TensorFlow 入门 本文转自:http://www.jianshu.com/p/6766fbcd43b9 字数3303 阅读904 评论3 喜欢5 CS224d-Day 2: 在 Da ...
- TensorFlow从1到2(一)续讲从锅炉工到AI专家
引言 原来引用过一个段子,这里还要再引用一次.是关于苹果的.大意是,苹果发布了新的开发语言Swift,有非常多优秀的特征,于是很多时髦的程序员入坑学习.不料,经过一段头脑体操一般的勤学苦练,发现使用S ...
- 初见TensorFlow :知其所以然
2.1 TensorFlow的主要依赖包 TensorFlow依赖的两个最主要的工具包——Protocol Buffer和Bazel. 2.1.1 Protocol Buffer Protocol B ...
- Tensorflow[架构流程]
1. tensorflow工作流程 如官网所示: 根据整体架构或者代码功能可以分为: 图1.1 tensorflow架构 如图所示,一层C的api接口将底层的核运行时部分与顶层的多语言接口分离开. 而 ...
- Tensorflow之基于MNIST手写识别的入门介绍
Tensorflow是当下AI热潮下,最为受欢迎的开源框架.无论是从Github上的fork数量还是star数量,还是从支持的语音,开发资料,社区活跃度等多方面,他当之为superstar. 在前面介 ...
- 对比深度学习十大框架:TensorFlow 并非最好?
http://www.oschina.net/news/80593/deep-learning-frameworks-a-review-before-finishing-2016 TensorFlow ...
- Torch,Tensorflow使用: Ubuntu14.04(x64)+ CUDA8.0 安装 Torch和Tensorflow
系统配置: Ubuntu14.04(x64) CUDA8.0 cudnn-8.0-linux-x64-v5.1.tgz(Tensorflow依赖) Anaconda 1. Torch安装 Torch是 ...
- windows10配置tensorflow深度学习环境(GPU版)各种坑
我们配置一个tensorflow-gpu版的深度学习环境 windows10 64 python3.5 vs2017(需要C++部分) cuda9.0 cudnn7.1 GeForce GTX1060 ...
随机推荐
- 题解【AcWing176】装满的油箱
题面 一开始拿到这个问题并不好做,于是考虑拆点. 考虑将一个点拆成 \(c+1\) 个,每个点表示(编号,剩余油量). 然后 \(\text{Dijkstra}\) 最短路即可. 每次跑 \(\tex ...
- TODO:如何模拟cpu打满,磁盘打满,网卡打满
背景: 测试活动中,需要构造cpu打满.磁盘打满.网卡打满的场景 场景1:cpu打满 环境信息: 虚拟机,物理核数16个,每个物理核的虚拟核数1个,虚拟核数16个: [root@vm10-0-0-8 ...
- eclipse的安装和环境配置
一,eclipse下载 地址:https://www.eclipse.org/downloads/ 一般浏览器都有翻译功能 二.有32位和64位的版本根据自己的需求下载,选下载的选下载量最多的下载. ...
- zabbix4.2配置监控华为路由器:基于ENSP模拟器
一.基于ENSP模拟器的华为路由器 这里是华为模拟器中的设备,并不是真机,所以要先保证华为模拟器中的网络设备可以和物理主机.虚拟机能通信,这是前提.如何保证通信请看之前的文章:https://www. ...
- path is not a working copy directory
svn: 'G:\chengXu\2017_Year\JFW\Easy7\WebRoot' is not a working copy directory 解决方法: (1)原因:eclipse把sr ...
- Hackintosh Issues 10.13.x
Issuses 1: 出现禁行: (-v:) allcating 0x800 pages at 0x2000000 alloc type 2 Load kernal from stream Load ...
- 大数据-Storm
Storm 流式处理框架 Storm是实时的,分布式,高容错的计算系统.java+cljoure Storm常驻内存,数据在内存中处理不经过磁盘,数据通过网络传输. 底层java+cljoure构成, ...
- fpga vga 显示
VGA(Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高.显示速率快.颜色丰富等优点,在彩色显示器领域得到了广泛的应用.不支持热插拔, ...
- 解决报错WARNING: IPv4 forwarding is disabled. Networking will not work.
报错: [root@localhost /]# docker run -it ubuntu /bin/bash WARNING: IPv4 forwarding is disabled. Networ ...
- hdu1695(莫比乌斯反演+容斥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题目是求 在区间[a,b]选一个数x,区间[c,d]选一个数y,求满足gcd(x,y) = k ...