




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Glimpse TensorFlow初了解 TensorFlow是什么 一个采用数据流图 dataflowgraphs 用于数值计算的开源软件库 最初由Google大脑小组 隶属于Google机器智能研究机构 的研究员和工程师们开发出来 用于机器学习和深度神经网络方面的研究 也广泛用于其他计算领域 TensorFlow特性 PythonAPI高度的灵活性可移植性 Portability Tensorflow在CPU和GPU上运行 比如可以运行在台式机 服务器 手机移动设备等等 自动求微分性能最优化庞大的社群支持 深度学习工具对比 一些好玩的TensorFlow项目 卷积神经网络实现图片风格转变s 皮肤癌图像分类 最终相关成果发表在Nature 而且在Nature的封面 这是一个特别成功地通过计算机视觉及深度学习相关的技术 利用廉价的移动设备 能够很有效地检测是否有皮肤癌 大大节省了医疗检测的成本 AlphaGo 安装 Ubuntu16 0464bit 1 安装Anaconda官网下载对应版本在下载目录下执行 bashAnaconda3 4 4 0 Linux x86 64 sh安装Spyder sudoaptinstallspyder2 安装TensorFlowCPU版本方法一 pipinstalltensorflow方法二 下载源码安装 可对配置进行修改 TensorFlow的系统结构以CAPI为界 将整个系统分为 前端 和 后端 两个子系统 前端系统 提供编程模型 负责构造计算图 后端系统 提供运行时环境 负责执行计算图 架构设计 基本概念 TensorFlow核心程序由2个独立部分组成 a Buildingthecomputationalgraph构建计算图b Runningthecomputationalgraph运行计算图计算图是一系列的TensorFlow操作排列成一个有向无环图 基本概念 TensorFlow的数据模型为tensor 张量 可简单理解为类型化的多维数组 0维张量是一个数字 也叫标量 s 11维张量称为 向量 v 1 2 3 2维张量称为矩阵 m 1 2 3 4 5 6 7 8 9 n维 但和Numpy中的数组不同是 一个张量中主要保留了三个属性 name shape type importtensorflowastfa tf constant 1 2 3 b tf constant 2 3 5 result tf add a b name add print result tensor add 0 shape 3 dtype int32 add 0表示result这个张量是计算节点 add 输出的第一个结果shape 3 表示张量是一个一维数组 这个数组的长度是3dtype int32是数据类型 TensorFlow会对参与运算的所有张量进行类型的检查 当类型不匹配时会报错 运行结果 基本概念 TensorFlow的计算模型为graph 计算图 一个TensorFlow图描述了计算的过程 为了进行计算 图必须在会话里被启动 会话将图的op 节点 分发到诸如CPU或GPU之类的设备上 同时提供执行op的方法 这些方法执行后 将产生的tensor返回 TensorFlow中的每一个计算都是图上的一个节点 而节点之间的边描述了计算之间的依赖关系 基本概念 TensorFlow的运行模型为session 会话 通过会话来执行计算图 当计算完TensorFlow使用会话的方式主要有如下两种模式 sess tf Session 创建一个会话sess run result 运行此会话Sess close 运行完毕关闭此会话 运行结果 withtf Session assess sess run result 通过python的上下文管理器来使用会话 当上下文退出时会话管理和资源释放也自动完成 变量Variable 当训练模型时 用变量来存储和更新参数 建模时它们需要被明确地初始化 当创建一个变量时 你将一个张量作为初始值传入构造函数Variable TensorFlow提供了一系列操作符来初始化张量 weights tf Variable tf random normal 2 3 stddev 2 name weights 这里生成2 3的矩阵 元素的均值为0 标准差为2 可用mean指定均值 默认值为0 随机数生成函数 tf truncated normal 正太分布 偏离平均值超过两个偏差 重新选择tf random uniform 最小值 最大值 平均分布 控制字符中可加入种子 seed n 常数生成函数 全零数组tf zeros 2 3 int32 全一数组tf ones 全为给定的某数 例如9 tf fill 2 3 9 产生给定值得常量tf cinstant 1 2 3 withtf Session assess sess run weights initializer init tf initialize all variables withtf Session assess sess run init 初始化方式 Placeholder Feed 一个计算图可以参数化的接收外部的输入 作为一个placeholder 占位符 在计算时需要提供一个字典feed dict来指定placeholder的取值 input1 tf constant 3 0 input2 tf constant 2 0 mul tf multiply input1 input2 withtf Session assess result sess run mul print result input1 tf placeholder tf float32 占位符input2 tf placeholder tf float32 output tf multiply input1 input2 withtf Session assess print sess run output feed dict input1 3 0 input2 2 0 运行结果 6 0 运行结果 6 0 为什么使用计算图 Graph 1 更加结构化的体现计算过程2 很利于我们提取中间某些节点的结果 3 更重要的是 这个图的结构天生就是方便求导 如果要求dJ da就只要 dj dv dv da 3 1 TensorFlow训练神经网络 三个步骤 1 定义神经网络的结构和前向传播的输出结果 2 定义损失函数以及选择反向传播优化的算法 3 生成会话并且在训练数据上反复运行反向传播优化算法 神经网络 基本结构http playground tensorflow org神经网络由大量神经元组成 每个神经元获得线性组合的输入 经过非线性的激活函数 然后得到非线性的输出 神经网络 激活函数 Eachsuccessivelayerusestheoutputfromthepreviouslayerasinput 线性模型的最大特点是任意线性模型的组合仍然是线性模型 只通过线性变换 任意层的全连接神经网络和单层神经网络没有任何区别 因此非线性是深度学习的重要特性 目前TensorFlow提供了7种不同的非线性激活函数 常见的有 tf nn relu tf sigmoid和tf tanh HardReLU g x max 0 x NoiseReLU max 0 x N 0 x 该函数的导函数 g x 0或1 ReLu RectifiedLinearUnits 函数S形函数 SigmoidFunction 函数表达式和导函数 双曲正切函数 tanh tanh x 2sigmoid 2x 1 但tanh是0均值的 函数表达式 神经网络 softmax 用于多分类神经网络输出 公式如下 元素的Softmax值就是 导 就是如果某一个zj大过其他z 那这个映射的分量就逼近于1 其他就逼近于0 主要应用就是多分类 为什么要取指数 第一个原因是要模拟max的行为 所以要让大的更大 第二个原因是需要一个可导的函数 tensorflow tf nn softmax 神经网络 优化算法 为 神经网络模型的效果和优化的目标是通过代价函数 lostfunction 也称损失函数来定义的 代价函数 其中y为期望的输出 a为神经元实际输出 神经网络的优化算法可以分为两个阶段 第一阶段先通过前向传播算法计算得到预测值 计算损失函数 然后在第二阶段通过反向传播算法计算损失函数对每一个参数的梯度 再根据梯度和学习率使用梯度下降算法更新每一个参数 cross entropy tf reduce sum y tf log y 代价函数train step tf train GradientDescentOptimizer 1e 3 minimize cross entropy 梯度下降法 卷积神经网络 卷积神经网络 ConvolutionalNeuralNetwork CNN 由三部分构成 第一部分是输入层 第二部分由n个卷积层和池化层的组合组成 第三部分由一个全连结的多层感知机分类器构成 这一结构使得卷积神经网络天然适合处理二维特征数据 卷积神经网络 卷积层 对图像和滤波矩阵做内积 逐个元素相乘再求和 的操作就是所谓的 卷积 操作 也是卷积神经网络的名字来源 卷积的主要目的是为了从输入图像中提取特征 卷积可以通过从输入的一小块数据中学到图像的特征 并可以保留像素间的空间关系 filter weight tf Variable tf truncated normal shape stddev 0 1 conv tf nn conv2d x filter weight strides 1 2 2 1 padding SAME 第1个参数对应一个输入batch 第2个参数提供卷积层的权重 第3个参数为不同维度上的步长 其中第一维和最后一维一定为1 因为卷积层的步长只对矩阵的长和宽有效 最后一个是填充方式 卷积神经网络 池化层 池化 简言之 即取区域平均或最大 如下图所示 pool tf nn avg pool x ksize 1 2 2 1 strides 1 2 2 1 padding SAME 参数和卷积函数类似最大池化 tf nn max pool 池化有两种 一种是最大池化 在选中区域中找最大的值作为抽样后的值 一种是平均值池化 把选中的区域中的平均值作为抽样后的值 卷积神经网络 dropout Dropout在模型训练时按照一定的概率暂时让网络某些隐含层节点的权重不工作 也称丢弃 作用是防止过拟合 TensorFlow中 可以用一个placeholder来代表dropout的概率 这样我们可以在训练过程中启用dropout 在测试过程中关闭dropout 实例代码 片段 h fc1 tf nn relu tf matmul h pool2 flat W fc1 b fc1 keep prob tf placeholder float h fc1 drop tf nn dropout h fc1 keep prob MNIST数字识别实例 importtensorflowastfimporttensorflow examples tutorials mnist input dataasinput datafromtensorflow python frameworkimportgraph utilmnist input data read data sets MNIST data one hot True 下载并加载mnist数据x tf placeholder tf float32 None 784 name input 输入的数据占位符y tf placeholder tf float32 shape None 10 输入的标签占位符 定义一个函数 用于初始化所有的权值Wdefweight variable shape initial tf truncated normal shape stddev 0 1 returntf Variable initial 定义一个函数 用于初始化所有的偏置项bdefbias variable shape initial tf constant 0 1 shape shape returntf Variable initial 定义一个函数 用于构建卷积层defconv2d x W returntf nn conv2d x W strides 1 1 1 1 padding SAME 定义一个函数 用于构建池化层defmax pool x returntf nn max pool x ksize 1 2 2 1 strides 1 2 2 1 padding SAME 构建网络x image tf reshape x 1 28 28 1 转换输入数据shape 以便于用于网络中W conv1 weight variable 5 5 1 32 b conv1 bias variable 32 h conv1 tf nn relu conv2d x image W conv1 b conv1 第一个卷积层g w x b h pool1 max pool h conv1 第一个池化层W conv2 weight variable 5 5 32 64 b conv2 bias variable 64 h conv2 tf nn relu conv2d h pool1 W conv2 b conv2 第二个卷积层h pool2 max pool h conv2 第二个池化层W fc1 weight variable 7 7 64 1024 b fc1 bias variable 1024 h pool2 flat tf reshape h pool2 1 7 7 64 reshape成向量h fc1 tf nn relu tf matmul h pool2 flat W fc1 b fc1 第一个全连接层keep prob tf placeholder float name keep prob h fc1 drop tf nn dropout h fc1 keep prob dropout层W fc2 weight variable 1024 10 b fc2 bias variable 10 y tf nn softmax tf matmul h fc1 drop W fc2 b fc2 name y softmax层cross entropy tf reduce sum y tf log y 交叉熵train step tf train GradientDescentOptimizer 1e 3 minim
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询服务费收取方案范本
- 考研报考咨询宣传方案
- 2025版司法局《调查取证申请书》(空白模板)
- 线上读书活动策划方案公司
- 加油站营销送礼品方案
- 福鼎小型连续墙施工方案
- 围堤清障除杂施工方案
- 建筑转行展览活动方案设计
- 建筑模板废料清除方案设计
- 认知三板斧营销方案
- 助贷电销知识培训课件
- 《风力发电培训》课件
- 焊工作业(初训、复审)培训课件
- (完整版)高考英语词汇3500词(精校版)
- 2025年研发人员保密协议书
- 物流园区规章制度模版(2篇)
- 京东方岗位胜任力测评题库
- 大学生职业规划课件完整版
- 印刷包装公司安全生产管理方案
- 高中数学64数列求和省公开课获奖课件市赛课比赛一等奖课件
- 《大学语文》普通高等院校语文课程完整全套教学课件
评论
0/150
提交评论