TensorFlow基本原理,入门教程网址
TensorFlow
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。
节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。
它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。
可用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
数据流图(Data Flow Graph)
用“节点”(nodes)和“线”(edges)的有向图来描述数学计算。
“节点” 一般用来表示施加的数学操作,也可表示数据输入(feed in)的起点/输出(push out)的终点,或读取/写入持久变量(persistent variable)的终点。
线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。
张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。
一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。
基本用法
一览使用 图(Graph) 表示计算任务
在 会话(Session) 中执行图
使用 tensor 表示数据
通过 变量(Variable) 维护状态
使用 feed和fetch 进行赋值或取值图中的节点称为op(operation)一个op获得tensor(>=0个)进行计算,产生tensor(>=0个)
TensorFlow程序通常包括 构建阶段 和 执行阶段
在构建阶段,op的 执行步骤 被描述成图
在执行阶段,使用 会话 执行图中的op
TensorFlow Python 库有一个默认图 (default graph), op 构造器可以为其增加节点
进阶
Python代码的目的是用来 构建这个可以在外部运行的计算图,以及 安排计算图的哪一部分应该被运行。
http://tensorfly.cn/
github 地址 :
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/tutorials
;;
https://github.com/tensorflow/tensorflow/tree/r0.8/tensorflow/examples/tutorials
训练模型
为了训练我们的模型,我们首先需要定义一个指标来评估这个模型是好的。其实,在机器学习,我们通常定义指标来表示一个模型是坏的,这个指标称为成本(cost)或损失(loss),然后尽量最小化这个指标。但是,这两种方式是相同的。
一个非常常见的,非常漂亮的成本函数是“交叉熵”(cross-entropy)。交叉熵产生于信息论里面的信息压缩编码技术,但是它后来演变成为从博弈论到机器学习等其他领域里的重要技术手段。它的定义如下:
y 是我们预测的概率分布, y' 是实际的分布(我们输入的one-hot vector)。比较粗糙的理解是,交叉熵是用来衡量我们的预测用于描述真相的低效性。更详细的关于交叉熵的解释超出本教程的范畴,但是你很有必要好好理解它。
为了计算交叉熵,我们首先需要添加一个新的占位符用于输入正确值:
y_ = tf.placeholder("float", [None,10])
然后我们可以用 计算交叉熵:
cross_entropy = -tf.reducesum(y*tf.log(y))
首先,用 tf.log 计算 y 的每个元素的对数。接下来,我们把 y 的每一个元素和 tf.log(y) 的对应元素相乘。最后,用 tf.reduce_sum 计算张量的所有元素的总和。(注意,这里的交叉熵不仅仅用来衡量单一的一对预测和真实值,而是所有100幅图片的交叉熵的总和。对于100个数据点的预测表现比单一数据点的表现能更好地描述我们的模型的性能。
现在我们知道我们需要我们的模型做什么啦,用TensorFlow来训练它是非常容易的。因为TensorFlow拥有一张描述你各个计算单元的图,它可以自动地使用反向传播算法(backpropagation algorithm)来有效地确定你的变量是如何影响你想要最小化的那个成本值的。然后,TensorFlow会用你选择的优化算法来不断地修改变量以降低成本。
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
在这里,我们要求TensorFlow用梯度下降算法(gradient descent algorithm)以0.01的学习速率最小化交叉熵。梯度下降算法(gradient descent algorithm)是一个简单的学习过程,TensorFlow只需将每个变量一点点地往使成本不断降低的方向移动。当然TensorFlow也提供了其他许多优化算法:只要简单地调整一行代码就可以使用其他的算法。
与分类问题不同,回归问题解决的是对具体数值的预测,eg:房价预测,销量预测,流量预测等
均方误差的定义:均方误差
#y代表输出答案,y_代表标准答案
mse=tf.reduce_mean(tf.square(y_-y))
但在实际问题中往往均方误差并不能很好的表达问题,比如预测销量,卖衣服,货物成本一件100元,商品利润一件20。那此时多预测一个亏100,少预测一个少挣20。所以这里面有一个权重在里面,根据具体问题去定义偏向多进货还是偏向少进货。这时候往往需要根据实际问题在MSE的基础上自定义损失函数。
转载于:https://blog.51cto.com/13000661/2125085
TensorFlow基本原理,入门教程网址相关推荐
- Tensorflow Slim入门教程(1)
slim入门教程 slim入门教程 1. Variable 2. Layers 2.1 slim.bias_add 2.2 slim.batch_norm 2.3 slim.conv2d 2.4 sl ...
- Tensorflow keras入门教程
目录 1.Tensorflow与Keras 2.安装内置Keras的Tensorflow 3.Tensorflow内置的Keras教程 3.1.导入tf.keras 3.2.创建一个简单的模型 3.2 ...
- TensorFlow v1 入门教程
目录 Tensor 计算图 Eager mode Tensorboard Save and Restore 模型保存 模型恢复 tensorflow v2 版本现在已经全面用keras 封装了,运行时 ...
- TensorFlow人工智能入门教程之十一 最强网络DLSTM 双向长短期记忆网络(阿里小AI实现)...
2019独角兽企业重金招聘Python工程师标准>>> 失眠 ....上一章 讲了 最强网络之一 RSNN 深度残差网络 这一章节 我们来讲讲 还有一个很强的网络模型,就是双向LS ...
- python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...
- Tensorflow 入门教程
Tensorflow 入门教程 http://tensornews.cn/ 深度学习发展史 特征工程 深度学习之激活函数 损失函数 反向传播算法 [上] 反向传播算法 [下] Tensorflow ...
- python中tensorflow_TensorFlow入门教程TensorFlow 基本使用T
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...
- TensorFlow发布语音识别入门教程,附1GB数据集代码
原标题:TensorFlow发布语音识别入门教程,附1GB数据集&代码 机械鸡的鸡友经常问:如何开始入门深度学习语音和其他音频识别,例如关键字检测或语音命令. 虽然有一些伟大的开源语音识别系统 ...
- (转)tensorflow入门教程(二十六)人脸识别(上)
https://blog.csdn.net/rookie_wei/article/details/81676177 1.概述 查看全文 http://www.taodudu.cc/news/show- ...
最新文章
- 搭建服务器环境 安装jdk、mysql、Tomcat 以及配置https 记录
- python快速入门 pdf-Python快速入门 (第3版) PDF 下载
- Javascript获取select的选中值和选中文本
- electron——初探
- 信息学奥赛一本通(1169:大整数减法)
- 当当并购重组了,我们还有书读吗?
- endp 汇编start_常见汇编代码
- 关于PHP上传文件时配置 php.ini 中的 upload_tmp_dir
- android 仿ofo页面,GitHub - AndroidProject1212/react-native-ofo: React Native 仿 ofo 共享单车 App...
- 手游和平精英透视教学
- 【蓝桥杯备赛笔记 02】费解的开关
- ROS自主驾驶割草机
- 人与人之间的交往艺术
- 如何实现自有App上的小程序第三方微信授权登陆?
- C++使用CFile类文件读写
- 企业遇到3C审厂不符合项应该如何整改?
- PHP+MySQL 无限级分类的两种实现方案
- 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。...
- 如何用matlab拟合二元函数,怎么拟合二元函数?用什么软件比较容易实现?
- 2021年最后一天了,总得留下点什么
热门文章
- 15_python基础—文件操作
- php 传递resource参数,php define的第二个参数使用方法_php技巧 - is_resource
- 外设键盘_记得那个被称为‘顶级外设’的国产品牌吗,现在推出这样一把键盘...
- oraclek导出表_oracle如何导出和导入数据库/表
- php ajax勾选框提交,jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例...
- 一个3200位长的tcp报文传到ip层_运输层
- linux listener作用,Local_listener 的作用
- 在VsCode里编写和运行不同语言的程序
- 基于《悉尼协议》框架下Java课程案例教学研究
- 【codevs1079】回家