tensorflow与深度学习

上传人:小** 文档编号:95416191 上传时间:2019-08-18 格式:PPT 页数:74 大小:24.58MB
返回 下载 相关 举报
tensorflow与深度学习_第1页
第1页 / 共74页
tensorflow与深度学习_第2页
第2页 / 共74页
tensorflow与深度学习_第3页
第3页 / 共74页
tensorflow与深度学习_第4页
第4页 / 共74页
tensorflow与深度学习_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《tensorflow与深度学习》由会员分享,可在线阅读,更多相关《tensorflow与深度学习(74页珍藏版)》请在金锄头文库上搜索。

1、Tensorflow与深度学习,第四天-Tensorflow基础,1、深度学习介绍 2、认识Tensorflow 3、Tensorflow的安装 4、Tensorflow初体验 5、Tensorflow进阶 6、案例:实现线性回归,A yellow bus driving down a road with green trees and green grass in the background.,Living room with white couch and blue carpeting. The room in the apartment gets some afternoon sun.

2、,这些都是深度学习程序所写,聊天对话系统,深度学习介绍,深度学习,如深度神经网络、卷积神经网络和递归神经网络已被应用 计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域 并获取了极好的效果。,深度学习框架,Tensorflow,认识Tensorflow,1、真正的可移植性 引入各种计算设备的支持包括CPU/GPU/TPU,以及能够很好地运行在移动端, 如安卓设备、ios、树莓派等等 2、多语言支持 Tensorflow 有一个合理的c+使用界面,也有一个易用的python使用界面来构建和 执行你的graphs,你可以直接写python/c+程序。 3、高度的灵活性与效率 Tenso

3、rFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库 能够灵活进行组装图,执行图。随着开发的进展,Tensorflow的效率不算在提高 4、支持 TensorFlow 由谷歌提供支持,谷歌投入了大量精力开发 TensorFlow,它希望 TensorFlow 成为机器学习研究人员和开发人员的通用语言,Tensorflow特点,使用tensorflow的公司,Tensorflow教学版本,使用17年2月份发布的1.0版本,更快: TensorFlow 1.0 运行速度变得更加快 更灵活 TensorFlow 1.0 还加入了一些高级API,包括 tf.lay

4、ers,tf.metrics 和 tf.losses 模块。 以及加入了一些类似scikit-learn的estimator机制 0.12版本之后支持的可视化 能够可视化的看见程序图的结构,Tensorflow的安装,Linux/ubuntu Mac,开启GPU支持(不推荐),如果您的系统没有NVIDIAGPU,请构建并安装CPU版本 Ubuntu: 安装CUDA和cuDNN Mac: 安装CUDA和cuDNN,Tensorflow初体验,通过案例来了解分析Tensorflow的整个结构,加法运算,Tensorflow加法运算,数据流图:,Tensor,flow,计算密集型 vs IO密集型,

5、Tensorflow与以往接触的不同,Tensorflow进阶,1、图 2、会话 3、张量 4、变量 5、模型保存和加载 6、自定义命令行参数,图,图默认已经注册,一组表示 tf.Operation计算单位的对象和tf.Tensor 表示操作之间流动的数据单元的对象 获取调用: tf.get_default_graph() op、sess或者tensor 的graph属性,哪些是op,图的创建,tf.Graph() 使用新创建的图 g = tf.Graph() with g.as_default(): a = tf.constant(1.0) assert c.graph is g,会话,tf

6、.Session() 运行TensorFlow操作图的类,使用默认注册的图(可以指定运行图) 会话资源 会话可能拥有很多资源,如 tf.Variable,tf.QueueBase 和tf.ReaderBase,会话结束后需要进行资源释放 sess = tf.Session() sess.run(.) sess.close() 使用上下文管理器 with tf.Session() as sess: sess.run(.) config=tf.ConfigProto(log_device_placement=True) 交互式:tf.InteractiveSession(),会话的run()方法,

7、run(fetches, feed_dict=None,graph=None) 运行ops和计算tensor 嵌套列表,元组, namedtuple,dict或OrderedDict(重载的运算符也能运行) feed_dict 允许调用者覆盖图中指定张量的值,提供给 placeholder使用 返回值异常 RuntimeError:如果它Session处于无效状态(例如已关闭)。 TypeError:如果fetches或feed_dict键是不合适的类型。 ValueError:如果fetches或feed_dict键无效或引用 Tensor不存在。,Tensorflow Feed操作,意义:

8、在程序执行的时候,不确定输入的是什么,提前“占个坑” 语法:placeholder提供占位符,run时候通过feed_dict指定参数,张量,1、张量的阶和数据类型 2、张量操作,关闭警告,import os os.environTF_CPP_MIN_LOG_LEVEL=2,张量的阶和数据类型,Tensorflow基本的数据格式 一个类型化的N维度数组(tf.Tensor) 三部分,名字,形状,数据类型,张量的阶,张量的数据类型,张量属性,graph 张量所属的默认图 op 张量的操作名 name 张量的字符串描述 shape 张量形状,张量的动态形状与静态形状,TensorFlow中,张量具

9、有静态形状和动态形状 静态形状: 创建一个张量或者由操作推导出一个张量时,初始状态的形状 tf.Tensor.get_shape:获取静态形状 tf.Tensor.set_shape():更新Tensor对象的静态形状,通常用于在不能直接推 断的情况下 动态形状: 一种描述原始张量在执行过程中的一种形状 tf.reshape:创建一个具有不同动态形状的新张量,1、转换静态形状的时候,1-D到1-D,2-D到2-D,不能跨阶数改变形状 2、 对于已经固定或者设置静态形状的张量变量,不能再次设置静态形状 3、tf.reshape()动态创建新张量时,元素个数不能不匹配,要点,张量操作-生成张量,为

10、什么需要正态分布的变量值?,正态分布,概率密度函数为正态分布的期望值决定了其位置,其标准差 决定了分布的幅度。当 = 0, = 1时的正态分布是标准正态分布。,张量操作-张量变换,切片与扩展,tf.concat(values, axis, name=concat),https:/www.tensorflow.org/versions/r1.0/api_guides/python/math_ops,提供给Tensor运算的数学函数,算术运算符 基本数学函数 矩阵运算 减少维度的运算(求均值) 序列运算,注:这些都是在1.0版本下的函数,不同版本会有些差异,变量,1、变量的创建 2、变量的初始化

11、3、变量的作用域,变量,变量也是一种OP,是一种特殊的张量,能够进行存储持久化,它的 值就是张量,变量的创建,tf.Variable(initial_value=None,name=None) 创建一个带值initial_value的新变量 assign(value) 为变量分配一个新值 返回新值 eval(session=None) 计算并返回此变量的值 name属性表示变量名字,变量的初始化,tf.global_variables_initializer() 添加一个初始化所有变量的op 在会话中开启,可视化学习Tensorboard,数据序列化-events文件 TensorBoard

12、通过读取 TensorFlow 的事件文件来运行 tf.summary.FileWriter(/tmp/tensorflow/summary/test/, graph= default_graph) 返回filewriter,写入事件文件到指定目录(最好用绝对路径),以提供给tensorboard使用 开启 tensorboard -logdir=/tmp/tensorflow/summary/test/ 一般浏览器打开为127.0.0.1:6006 注:修改程序后,再保存一遍会有新的事件文件,打开默认为最新,图中的符号意义,增加变量显示,1、收集变量 tf.summary.scalar(na

13、me=,tensor) 收集对于损失函数和准确率 等单值变量,name为变量的名字,tensor为值 tf.summary.histogram(name=,tensor) 收集高维度的变量参数 tf.summary.image(name=,tensor) 收集输入的图片张量能显示图片,2、合并变量写入事件文件 merged = tf.summary.merge_all() 运行合并:summary = sess.run(merged),每次迭代都需运行 添加:FileWriter.add_summary(summary,i),i表示第几次的值,目的:观察模型的参数、损失值等变量值的变化,ten

14、sorflow实现一个简单的线性回归案例,简单的API介绍 线性回归实现,结果演示,动画演示,Tensorflow运算API,矩阵运算 tf.matmul(x, w) 平方 tf.square(error) 均值 tf.reduce_mean(error),tf.train.GradientDescentOptimizer(learning_rate) 梯度下降优化 learning_rate:学习率,一般为 method: return:梯度下降op,梯度下降API,Tensorboard观察图结构,变量显示,作用域,想一想之前函数里面,一个变量的作用域?,tensorflow变量作用域,t

15、f.variable_scope()创建指定名字的 变量作用域 观察变量的name改变? 嵌套使用变量作用域 观察变量的name改变?,如果在之前,给变量取相同的name会出现什么样的情况?,tensorflow变量作用域的作用,让模型代码更加清晰,作用分明,模型保存和加载,tf.train.Saver(var_list=None,max_to_keep=5) var_list:指定将要保存和还原的变量。它可以作为一个 dict或一个列表传递. max_to_keep:指示要保留的最近检查点文件的最大数量。 创建新文件时,会删除较旧的文件。如果无或0,则保留所有 检查点文件。默认为5(即保留最新的5个检查点文件。),例如:saver.save(sess, /tmp/ckpt/test/model) saver.restore(sess, /tmp/ckpt/test/model) 保存文件格式:checkpoint文件,自定义命令行参数,1、,2、 tf.app.flags.,在flags有一个FLAGS标志,它在程序中可以调用到我们 前面具体定义的flag_name 3、通过tf.app.run()启动main(argv)函数,Thank you!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号