《白话深度学习与TensorFlow》——3.3 其他特点

简介: 本节书摘来自华章计算机《白话深度学习与TensorFlow》一书中的第3章,第3.3节,作者:高扬,卫峥著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3 其他特点

TensorFlow有很多的特点,当然这些特点不见得都是独一无二的。
1 .多环境与集群支持
首先,TensorFlow支持在PC的CPU环境、GPU环境甚至是安卓环境中运行。它不仅可以支持在单个计算单元(一颗CPU的多核心或一颗GPU的多核心)上进行运算,也支持一台机器上多个CPU或多个GPU上并行计算。
2016年4月14日,Google发布了分布式TensorFlow,能够支持在几百台机器上并行训练。分布式的TensorFlow由高性能的gRPC库作为底层技术支持。TensorFlow集群由一系列的任务组成,这些任务执行TensorFlow的图计算。每个任务会关联到TensorFlow的一个服务,该服务用于创建TensorFlow会话及执行图计算。TensorFlow集群也可以划分为一个或多个作业,每个作业可以包含一个或多个任务。在一个TensorFlow集群中,通常一个任务运行在一个机器上。如果该机器支持多GPU设备,可以在该机器上运行多个任务,由应用程序控制任务在哪个GPU设备上运行。
常用的深度学习训练模型为数据并行化,即TensorFlow任务采用相同的训练模型在不同的小批量数据集上进行训练,然后在参数服务器上更新模型的共享参数。TensorFlow支持同步训练和异步训练两种模型训练方式。
异步训练即TensorFlow上每个节点上的任务为独立训练方式,不需要执行协调操作,如下图所示:
image

同步训练为TensorFlow上每个节点上的任务需要读入共享参数,执行并行化的梯度计算,然后将所有共享参数进行合并,如下图所示:
image

这两个图说明的过程具体是这样的:首先,初始化一个模型的矩阵w,把一个批次的训练样本平均分成若干份(图上是三份),分别给到三个节点去计算,进行正向传播;其次,在正向传播后会得到若干个不同的梯度,这个就是反向传播的过程,需要把这几个梯度向量ΔP都传送到一起,然后求出一个平均梯度值;最后,用这个平均梯度值再更新到这几个模型上去,完成一个批次的样本训练迭代过程。这里提到的过程大家可能会觉得有些陌生,不过没关系后面都会提到。
这就意味着理论上讲TensorFlow在处理一个训练任务的时候可以在多台服务器的多个GPU上共同进行运算以加快速度。不过要注意的是,如果你的网络不够大,这种方式有点像高射炮打蚊子一样不经济,由于参数的传递在网络上是要消耗时间的,对比在一台机器上进行传递数据来说,这个传输消耗的时间就显得有点太久了,甚至还有可能反而会让训练变慢。
2 . TensorBoard——看得见的训练
TensorFlow有一个比较友好的组件,它可以让工作人员在训练网络的过程中通过仪表盘看到网络目前的表现情况。
可视化几乎是任何一款软件都期望进行强化的部分,因为这样可以给人带来更好的体验,即便这些人已经用惯了文字界面的Unix系统族。

image
image

在TensorBoard中你只需要通过非常简单的配置命令:

#启动
tensorboard?--logdir=path/to/logs?

就能将它读取的位置指向日志路径,这样就可以读取其中的日志信息并做可视化显示。默认的Web界面位置在http://localhost:6006。从界面上可以看到一个训练模型的准确率以及损失函数的大小变化趋势。
3 . TensorFlow Serving——模型
TensorFlow Serving也是一个TensorFlow产品群的开源组件,可以部署成一个RESTful接口服务——类似于网站上的HTTP形式的API。是一种用于机器学习模型的高性能开源服务系统,专为生产环境而设计,并针对 TensorFlow进行了优化处理。
TensorFlow Serving系统非常适用于大规模运行能够基于真实情况的数据并会发生动态改变的多重模型。它能够实现:
模型生命周期管理。
使用多重算法进行试验。
GPU资源有效使用。
TensorFlow Serving 能够简化并加速从模型到生产的过程。它能实现在服务器架构和API保持不变的情况下,安全地部署新模型并运行试验。除了原生集成TensorFlow,还可以扩展服务其他类型的模型。下图显示了简化的监督学习过程,向learner输入训练数据,然后输出模型。
image

TensorFlow Serving使用(之前训练的)模型来实施推理——基于客户端呈现数据的预测。因为客户端通常会使用远程过程调用(RPC)接口来与服务系统通信,TensorFlow Serving提供了一种基于gRPC的参考型前端实现,这是谷歌开发的一种高性能开源RPC架构。当新数据可用或改进模型时,加载并迭代模型是很常见的。事实上,在谷歌许多管线经常运行,一旦当新数据可用时,就会产生新版本的模型。这将使得大规模协同训练复杂任务变得更方便。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
1天前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
51 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
356 55
|
2月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
220 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
351 5
|
3月前
|
机器学习/深度学习 人工智能 TensorFlow
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
151 0
|
3月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
141 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
3月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
179 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
3月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
175 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
3月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
145 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型

热门文章

最新文章