《TensorFlow技术解析与实战》学习笔记2-阿里云开发者社区

开发者社区> 柳鲲鹏> 正文

《TensorFlow技术解析与实战》学习笔记2

简介: 《TensorFlow技术解析与实战》学习笔记2
+关注继续查看
  • 第4章 TensorFlow基础知识

设备层和网络层gRPC(google Remote Procedure Call Protocol),RDMA(Remote Direct Memory Access)

数据操作层:卷积函数,激活函数。

图计算层

API层

应用层


命令式编程Imperative Style Programming,即通常意义上的程序。t=8+9; print(t)


符号式编程Symbolic Style Programming。


先定义变量,建立数据流图,规定各个变量之间的计算关系,进行编译。t=tensorflow.add(8,9); print(t)


涉及的运算放在图中,图的运行只在Session中。开启会话后,用数据填充节点进行运算。



Input/Reshape/Relu Layer/Logit Layer/Softmax/Cross Entropy/gradient/SGD Trainer


数据流图,节点、边组成的有向无环图Directed Acycline Graph。


  • 边Edge

两种连接关系:


数据依赖,实线,代表数据(张量)。Forward Propagation,残差Backward Propagation。


控制依赖Control Denpendency,虚线,Happens-before。没有数据流过,源节点必须先于目的节点执行前,完成执行。



  • 节点

算子,代表一个操作。

输入起点、输出终点。

读取、写入持久变量(Persistent variable)终点。


  • 其他

图,


会话,feed/fetch, extend添加边和接单,run


设备,比如指定在哪个GPU上运行。


变量,在图中有固定位置,不能流动。


内核,



常用API


tf.Graph


tf.Operation


tf.Tensor


tf.Summary



name_scope


variable_scope



Batch Normalization


网络深度加深,会导致梯度消失Vanishing Gradient Problem。


Internal Covariate Shift,Source Domain/Target Domain的数据分布是一致的。


Generalization


用在激活函数之前。加大了梯度。收敛速度慢或梯度爆炸等无法训练的情况下。



激活函数、卷积函数,池化函数,损失函数,优化器。


  • 激活函数

激活函数:运行时激活神经网络中某一部分神经元,将激活信息传入下一层的神经网络。神经网络能够解决非线性问题,就是激活函数加入了非线性因素。


神经网络的数据基础是处处可微。


激活函数不会更改输入数据的维度。tf.nnsigmoid():最常用。


sigmoid():最常用之一。有点是(0, 1),缺点是软饱和性。输入特征相差不明显时较好。


a = tf.constant([[1.0, 2.0], [1.0, 2.0], [1.0, 2.0]])


sess = tf.Session();


sess.run(tf.sigmoid(a))


(我这里加print 会出错)


tanh():最常用之二。以0为中心,收敛速度快。软饱和性。输出特征相差明显时较好。


relu():最收欢迎的。有时输入数据可以不用规范化。


softplus():relu的平滑版本。硬饱和,导致对应的权重无法更新,神经元死亡。


relu6()


crelu()


elu()


bias_add()


softsign()


dropout():一个神经元以keep_prob概率是否被抑制。被抑制输出为0,否则输出放大到1/keep_prob。


默认神经元是独立的,也可以通过noise_shape调节。


  • 卷积函数

在一批图像上扫码的二位过滤器。tf.nn


convolution():N维卷积和。


con2d():对四维输入数据input和四维卷积核filter进行操作,然后进行二维的卷积操作,最后得到卷积之后的结果。


depthwise_conv2d():多个通道?


separable_conv2d():分离卷积核做卷积。


atrous_conv2d():孔卷积。


conv2d_transpose():conv2d的转置。


conv1d():3维输入的一维卷积。


conv3d():5维输入的三维卷积。


  • 池化函数

一般用在卷积函数的下一层。


利用一个矩阵窗口在张量上扫描,将窗口中的值取最大值或平均值来减少元素个数。


avg_pool():


max_pool():


max_pool_with_argmax():最大值及所在位置。


avg_pool3d()/max_pool3d()


fractional_avg_pool()fractional_max_pool()。池化后的图片大小可以非整数倍的缩小。


pool():执行N维的池化操作。


  • 分类函数

sigmoid_cross_entropy_with_logits()


softmax()


log_softmax()


softmax_cross_entropy_with_logits()


sparse_softmax_cross_entropy_with_logits()


  • 优化方法

加速训练的优化方法都是基于梯度下降的。梯度下降是求函数极值的方法,学习到最后就是求损失函数的极值问题。


BGD:Batch Gradient Descent。优点:保证收敛;缺点:速度越来越慢。


SGD:Stochastic Gradient Descent。随机梯度下降。优点:训练数据集很大时,较快收敛;缺点:误差,局部最优,被困。


Momentum:引入了变量V。初期加速学习;后期加快收敛。


Nesterov Momentum:


Adagrad:自适应为各个参数分配不同的学习率。优点:学习率的自动更改。缺点:学习率单调递减。


Adadelta:


RMSProp:引入了一个衰减系数。


Adam:Adaptive moment estimation。


 

  • 模型的存储与加载

生成检查点文件(Checkpoint file)。tf.train.Saver()。包含权重、变量,不包含图结构。

生成图协议文件(Graph proto file)。tf.train.write_graph。只包含图结构。


  • 队列和线程

FIFOQueue

RandomShuffleQueue

QueueRunner

Coordinator


  • 加载数据

预加载数据

填充数据

从文件读取数据


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
tr命令解析_学习笔记
时间:2017.11.15 作者:李强 参考:man,info,magedu讲义 声明:以下英文纯属个人翻译,英文B级,欢迎纠正,盗版不纠,才能有限,希望不误人子弟为好。 1、使用目的与场景   把STDIN的字符进行转换,压缩,删除的操作,然后输出到STDOUT上,具体案例在什么实际工作哪里能用到因为还没有参加工作,所以先不揣测,但是应该可以对文本进行操作。
607 0
Shell复杂脚本实战|学习笔记
快速学习Shell复杂脚本实战
31 0
机器学习实战指南:如何入手第一个机器学习项目?
机器学习实战指南:如何入手第一个机器学习项目?
8 0
动力节点MySQL数据库入门实战学习教程(mysql基础+高级)
今天这篇文章将详细列出Mysql的学习流程,这是学习mysql数据库前你要了解的~~~ 大部分的小伙伴自己在网上找mysql资料、还有数据库的视频教程,但是都过于碎片化,没有体系,导致大家不知道如何系统的学习,也不知道该如何零基础学习MySQL。
34 0
Ajax技术实战操练课堂学习笔记
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/78412799 ...
872 0
机器学习实战:K近邻算法(源码分析)
学习机器学习的总结: 先把代码放到这儿,话说一句一句看着打真的好累,还好可以通过debug一步一步观察变量,理解顿时快了许多。
972 0
机器学习实战:基于概率论的分类方法:朴素贝叶斯(源码解析,错误分析)
按照惯例,先把代码粘到这里 from numpy import * def LoadDataSet(): postingList = [['my', 'dog', 'has', 'flea', 'proble...
840 0
Flutter技术解析与实战——闲鱼技术演进与创新-第1章(6)
本书将详细讲解闲鱼Flutter&FaaS云端一体化架构,以及闲鱼基于Flutter的架构演进与创新,学习一套全面的Flutter架构应用方案。本书介绍闲鱼技术团队利用Flutter技术改造和上线复杂业务的混合工程改造实践,抽取Flutter依赖到远程的实现细节,以及使用Plugin桥接获取设备信息、使用基础网络库等混合开发实践指南。这些实践遍布闲鱼各大业务线和应用场景,为读者使用Flutter打造自己的研发体系探索一条实践之路。除了介绍闲鱼Flutter应用框架Fish Redux、开发利器AspectD、FlutterBoost等一众开源工具与开发实践指南,你还将在......
17 0
机器学习实战(Machine Learning in Action)参考答案以及原始数据
数据以及参考code在官网下载即可 https://www.manning.com/books/machine-learning-in-action 如果下载不了可以从这里下载:名称 MLiA_SourceCode.
980 0
机器学习实战第五章(Chapter5):Logistic回归-程序原理详解
这一个章节中作者主要运用了Logistic回归分类器进行分类,分类器的函数形式是Sigmoid函数,过程可以概括为:每个输入特征乘以一个回归系数,然后将所有的结果值相加,将总和带入Sigmoid函数中进行分类,整个过程也可以被看成概率估计。
1239 0
+关注
2093
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载