自然语言处理系列六十一》分布式深度学习实战》TensorFlow深度学习框架

news2024/11/15 15:30:50

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

  • 自然语言处理系列六十一
    • 分布式深度学习实战》TensorFlow深度学习框架
      • 安装和部署过程
  • 总结

自然语言处理系列六十一

分布式深度学习实战》TensorFlow深度学习框架

TensorFlow作为最流行的深度学习框架之一,表达了高层次的机器学习计算,大幅简化了第一代系统,并且具备更好的灵活性和可延展性,下面我们就详细讲一个原理和安装的过程。
18.1.1 TensorFlow原理和介绍
TensorFlow是最为流行的深度学习框架,同时支持CPU和GPU,支持单机和分布式训练,下面我们就介绍下TensorFlow的原理。
1. TensorFlow介绍
TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等。TensorFlow最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
2. 核心概念:数据流图
数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点”一般用来表示施加的数学操作,但也可以表示数据输入(feedin)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。更详细的介绍可以查看tensorflow中文社区:http://www.tensorfly.cn/
TensorFlow主要是由计算图、张量以及模型会话三个部分组成:
1)计算图
在编写程序时,我们都是一步一步计算的,每计算完一步就可以得到一个执行结果。在TensorFlow中,首先需要构建一个计算图,然后按照计算图启动一个会话,在会话中完成变量赋值,计算,得到最终结果等操作。因此,可以说TensorFlow是一个按照计算图设计的逻辑进行计算的编程系统。
TensorFlow的计算图可以分为两个部分:
(1)构造部分,包含计算流图;
(2)执行部分,通过session执行图中的计算。
构造部分又分为两部分:
(1)创建源节点;
(2)源节点输出传递给其他节点做运算。
TensorFlow默认图:TensorFlowPython库中有一个默认图(defaultgraph)。节点构造器(op构造器)可以增加节点。
2)张量
在TensorFlow中,张量是对运算结果的引用,运算结果多以数组的形式存储,与numpy中数组不同的是张量还包含三个重要属性名字、维度、类型。张量的名字,是张量的唯一标识符,通过名字可以发现张量是如何计算出来的。比如“add:0”代表的是计算节点"add"的第一个输出结果。维度和类型与数组类似。
3)模型会话
用来执行构造好的计算图,同时会话拥有和管理程序运行时的所有资源。当计算完成之后,需要通过关闭会话来帮助系统回收资源。
在TensorFlow中使用会话有两种方式。第一种需要明确调用会话生成函数和关闭会话函数,代码如下所示。
import tensorflow as tf
#创建session
session = tf.Session()
#获取运算结果
session.run()
#关闭会话,释放资源
session.close()
第二种可以使用with的方式,代码如下所示。
with tf.Session() as session:
session.run()

两种方式不同的是,第二种限制了session的作用域,即session这个参数只适用于with语句下面,同时语句结束后自动释放资源,而第一种方式session则作用于整个程序文件,需要用close来释放资源。
3. TensorFlow分布式原理
TensorFlow的实现分为了单机实现和分布式实现。单机的模式下,计算图会按照程序间的依赖关系顺序执行。在分布式实现中,需要实现的是对client,master,worker process,device管理。client也就是客户端,他通过session run(会话运行)的接口与master和worker相连。master则负责管理所有woker的execute subgraph(执行计算子图)。worker由一个或多个计算设备device组成,如CPU,GPU等。具体过程如下图:
在这里插入图片描述

图7.1 TensorFlow分布式架构图
在分布式实现中,TensorFlow有一套专门的节点分配策略。策略是基于代价模型,代价模型会估算每个节点的输入,输出的tensor大小以及所需的计算时间,然后分配每个节点的计算设备。上面我们介绍的TensorFlow原理,下面我们看一下它的安装和部署过程。

安装和部署过程

安装和部署过程可参见
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】书籍。
更多的技术交流和探讨也欢迎加我个人微信chenjinglei66。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。
全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。
本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目。

【配套视频】

推荐系统/智能问答/人脸识别实战 视频教程【陈敬雷】
视频特色:把目前互联网热门、前沿的项目实战汇聚一堂,通过真实的项目实战课程,让你快速成为算法总监、架构师、技术负责人!包含了推荐系统、智能问答、人脸识别等前沿的精品课程,下面分别介绍各个实战项目:
1、推荐算法系统实战
听完此课,可以实现一个完整的推荐系统!下面我们就从推荐系统的整体架构以及各个子系统的实现给大家深度解密来自一线大型互联网公司重量级的实战产品项目!
2、智能问答/对话机器人实战
由浅入深的给大家详细讲解对话机器人项目的原理以及代码实现、并在公司服务器上演示如何实际操作和部署的全过程!
3、人脸识别实战
从人脸识别原理、人脸识别应用场景、人脸检测与对齐、人脸识别比对、人脸年龄识别、人脸性别识别几个方向,从理论到源码实战、再到服务器操作给大家深度讲解!

自然语言处理NLP原理与实战 视频教程【陈敬雷】
视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!

人工智能《分布式机器学习实战》 视频教程【陈敬雷】
视频特色:视频核心内容有互联网公司大数据和人工智能、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)。

上一篇:自然语言处理系列六十》分布式深度学习实战》主流深度学习开源平台
下一篇:自然语言处理系列六十二》神经网络算法》MLP多层感知机算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JWT生成、解析token

目录 1. 导入JWT相关依赖2. JWT生成token3. JWT解析token4. 测试结果5. JWT加密、解密工具类 1. 导入JWT相关依赖 <!-- jwt认证模块--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-api</artifactId><versio…

Linux 一个简单的中断信号实现

1.查看手册&#xff0c;学习中断处理图 流程&#xff1a;&#xff08;次级源->开关&#xff09;到 源挂起 到 开关 到 处理优先级 到 中断挂起标志 到 CPSR里面的开关&#xff08;图中未展现&#xff09; 最后cpu处理 此次我们先使用k1按键实现中断&#xff0c;即是eint8 …

requestIdleCallback和requestAnimationFrame有什么区别?

由react fiber引起的关注 组件树转为链表&#xff0c;可分段渲染渲染时可以暂停&#xff0c;去执行其他高优先级任务&#xff0c;空闲时在继续渲染&#xff08;JS是单线程的&#xff0c;JS执行的时候没法去DOM渲染&#xff09;如何判断空闲&#xff1f;requestIdleCallback 区…

想入门网络安全却不知道怎么入手,看这一篇就够了!

先聊聊&#xff0c;学习网络安全方向会遇到哪些问题&#xff1f; 打基础的时间长 学基础花费了很长的时间&#xff0c;光学语言都有好几门&#xff0c;有的人会止步于学习linux系统及命令的路上&#xff0c;更多的人会停在学习语言上面&#xff1b; 知识点掌握的不够清楚 对…

ML18_EM算法

1. 参数在贝叶斯网络中指的什么 2. 随机变量在贝叶斯网络中指的什么 在贝叶斯网络中&#xff0c;“随机变量”指的是网络中的节点&#xff0c;这些节点代表不确定事件或属性&#xff0c;它们可以取不同的值&#xff0c;并且这些值的概率分布通常未知或部分未知。随机变量可以表…

手搓LLM大模型:从零开始构建大语言模型

在人工智能的世界里&#xff0c;大型语言模型&#xff08;LLMs&#xff09;无疑是最引人注目的明星之一。这些深度神经网络模型的出现&#xff0c;为自然语言处理&#xff08;NLP&#xff09;领域带来了前所未有的变革。那么&#xff0c;这些模型究竟是如何工作的&#xff1f;它…

2024最新推荐10款英文免费录屏软件,想要录制电脑屏幕的你快看过来

你是否曾想过&#xff0c;只需几个简单的步骤&#xff0c;就能将你的电脑屏幕变成一个生动的视频故事&#xff1f;无论是展示你的游戏技巧&#xff0c;还是创建教育视频&#xff0c;录屏软件都能助你一臂之力。但面对市场上琳琅满目的录屏工具&#xff0c;选择一个合适的可能是…

【卡码网C++基础课 19.洗盘子】

目录 题目描述与分析一、栈二、栈的操作三、代码编写 题目描述与分析 题目描述&#xff1a; 在餐厅里&#xff0c;洗盘子的工作需要使用到栈这种数据结构。 假设你手里有一个盘子堆放区。现在需要模拟洗盘子的过程&#xff0c;每个盘子都有一个编号。 盘子堆放区操作说明&…

计算机网络-VRRP切换与回切过程

前面我们学习了VRRP选举机制&#xff0c;根据VRRP优先级与IP地址确定主设备与备份设备&#xff0c;这里继续进行主备切换与主备回切以及VRRP抢占模式的学习。 一、VRRP主备切换 主备选举时根据优先级选择主设备&#xff0c;状态切换为Master状态&#xff0c;那当什么时候会切换…

Verilog语法+:和-:有什么用?

Verilog语法:和-:主要用于位选择&#xff0c;可以让代码更简洁。 一、位选择基础 在Verilog中&#xff0c;位选择可以通过直接索引来实现&#xff0c;例如&#xff1a; reg [7:0] data; wire select_a; wire [2:0] select_b; assign select_a data[3]; assign select_b …

【sensor】激光雷达的分类和优缺点(六)

【sensor】镜头评价指标及测试方法&#xff08;一&#xff09; 【sensor】镜头评价指标及测试方法(二)—畸变与分辨率 【sensor】镜头评价指标及测试方法&#xff08;三&#xff09;--------测量原理及3D相机调查 【sensor】镜头评价指标及测试方法【四】————手机摄像头调查…

PAT甲级-1044 Shopping in Mars

题目 题目大意 一串项链上有n个钻石&#xff0c;输入给出每个钻石的价格。用m元买一个连续的项链子串&#xff08;子串长度可为1&#xff09;&#xff0c;如果不能恰好花掉m元&#xff0c;就要找到最小的大于m的子串&#xff0c;如果有重复就输出多个&#xff0c;按递增顺序输…

2.2ceph集群部署准备-软件准备上

系统的选择 操作系统的选取&#xff0c;除了要考虑ceph本身的运行&#xff0c;一般情况下还需要考虑的因素有如下几点 系统本身的稳定性 目前稳定可靠的系统主要是基于x86和arm的linux系统&#xff0c;ceph并不能安装到windows上&#xff0c;分支上&#xff0c;debian和redhat…

sponge创建的服务与dtm连接使用etcd、consul、nacos进行服务注册与发现

本文介绍sponge创建的 transfer 服务(grpc)如何与 dtm 使用服务注册与发现连接的。此示例在同一台机器上运行的服务&#xff0c;默认 IP 地址为 127.0.0.1。如果服务运行在不同的机器上&#xff0c;请在 transfer 和 dtm 的配置文件中&#xff0c;将 127.0.0.1 替换为相应的主机…

TL431精密可调并联稳压器

TL431是一种由德州仪器(TI)公司生产的可调精密并联稳压器&#xff0c;具有较广的工作电压范围&#xff08;2.5V-36V&#xff09;和优异的电流调节能力。作为一种基准电压源&#xff0c;它广泛用于电源设计、稳压电路以及精密参考电源等应用场合。 TL431的内部结构 TL431具有三…

Zotero引用参考文献常见问题及解决方法

一、显示经典版“添加引注”对话框 使用Word插入参考文献时&#xff0c;会出现引用对话框&#xff0c;默认是图1形式&#xff0c;需要搜索对应文章或者点击下拉箭头才显示保存的文献&#xff0c;很不方便。 图 1 想要默认显示文献&#xff0c;在Zotero中左上角的“编辑”→“首…

python环境中,pytorch、tensorflow、opencv 包的安装

知不足而奋进&#xff0c;望远山而前行 —— 24.9.6 tensorflow pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu1.13.1 pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple pytorch pip install torch2.0.0cu118 torchvision0.15…

基于人工智能的音乐情感分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 音乐情感分类是通过对音乐音频信号进行分析&#xff0c;识别出音乐传递的情感&#xff0c;如“愉快”、“悲伤”、“愤怒”等。该技术…

SVD降维

文章目录 一、SVD降维的基本原理二、SVD降维的步骤三、SVD降维的优点四、SVD降维的应用五、代码应用六、SVD降维的局限性 一、SVD降维的基本原理 SVD是线性代数中的一种技术&#xff0c;它将一个矩阵A分解为三个矩阵的乘积&#xff1a;A UΣV^T。其中&#xff0c;U和V是正交矩…

【项目二】C++高性能服务器开发——日志系统(各种适配器)

感谢前人的总结&#xff0c;没有他们&#xff0c;我不会这么快学完&#xff65;ω&#xff65; 知识点备忘录操作记录 知识点备忘录 数据除了打印到控制台还需要打印到本地磁盘和远程日志&#xff0c;所以需要适配器来干这活 涉及多个适配器&#xff0c;打印到控制台的、打印到…