《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



加载数据

预加载数据


填充数据


从文件读取数据

目录
相关文章
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow与PyTorch深度对比分析:从基础原理到实战选择的完整指南
蒋星熠Jaxonic,深度学习探索者。本文深度对比TensorFlow与PyTorch架构、性能、生态及应用场景,剖析技术选型关键,助力开发者在二进制星河中驾驭AI未来。
891 13
|
7月前
|
人工智能 自然语言处理 TensorFlow
134_边缘推理:TensorFlow Lite - 优化移动端LLM部署技术详解与实战指南
在人工智能与移动计算深度融合的今天,将大语言模型(LLM)部署到移动端和边缘设备已成为行业发展的重要趋势。TensorFlow Lite作为专为移动和嵌入式设备优化的轻量级推理框架,为开发者提供了将复杂AI模型转换为高效、低功耗边缘计算解决方案的强大工具。随着移动设备硬件性能的不断提升和模型压缩技术的快速发展,2025年的移动端LLM部署已不再是遥远的愿景,而是正在成为现实的技术实践。
1512 39
|
缓存 TensorFlow 算法框架/工具
TensorFlow学习笔记(一): tf.Variable() 和tf.get_variable()详解
这篇文章详细介绍了TensorFlow中`tf.Variable()`和`tf.get_variable()`的使用方法、参数含义以及它们之间的区别。
654 0
|
机器学习/深度学习 人工智能 TensorFlow
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
747 3
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
468 5
|
机器学习/深度学习 API TensorFlow
深入解析TensorFlow 2.x中的Keras API:快速搭建深度学习模型的实战指南
【8月更文挑战第31天】本文通过搭建手写数字识别模型的实例,详细介绍了如何利用TensorFlow 2.x中的Keras API简化深度学习模型构建流程。从环境搭建到数据准备,再到模型训练与评估,展示了Keras API的强大功能与易用性,适合初学者快速上手。通过简单的代码,即可完成卷积神经网络的构建与训练,显著降低了深度学习的技术门槛。无论是新手还是专业人士,都能从中受益,高效实现模型开发。
511 1
|
机器学习/深度学习 数据采集 TensorFlow
从零到精通:TensorFlow与卷积神经网络(CNN)助你成为图像识别高手的终极指南——深入浅出教你搭建首个猫狗分类器,附带实战代码与训练技巧揭秘
【8月更文挑战第31天】本文通过杂文形式介绍了如何利用 TensorFlow 和卷积神经网络(CNN)构建图像识别系统,详细演示了从数据准备、模型构建到训练与评估的全过程。通过具体示例代码,展示了使用 Keras API 训练猫狗分类器的步骤,旨在帮助读者掌握图像识别的核心技术。此外,还探讨了图像识别在物体检测、语义分割等领域的广泛应用前景。
515 1
|
TensorFlow 算法框架/工具
Tensorflow学习笔记(二):各种tf类型的函数用法集合
这篇文章总结了TensorFlow中各种函数的用法,包括创建张量、设备管理、数据类型转换、随机数生成等基础知识。
711 0
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
294 0
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
435 0