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

注:此文章内容均节选自充电了么创始人,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.mzph.cn/news/879033.shtml

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

相关文章

SpringBoot2:请求处理原理分析-接口参数的常用注解

1、PathVariable 作用说明&#xff1a;获取路径参数 案例&#xff1a; 接口收参形式&#xff1a; GetMapping("/car/{id}/owner/{username}")public Map<String,Object> getCar(PathVariable("id") Integer id,PathVariable("username")…

【uml】graph_legend中的类图怎么看

上图中的方框具有以下含义&#xff1a; 实心灰色方框表示生成图表的结构或类。 带黑色边框的方框表示已记录的结构或类。 带灰色边框的方框表示未记录的结构或类。 带红色边框的方框表示未显示所有继承/包含关系的已记录的结构或类。如果图表不适合指定的边界&#xff0c;则图…

雷电9模拟器安装magisk和lsposed

模拟器环境配置 1、开启root 2、开启System.vmdk可写入 安装magisk 1、新建模拟器、开启root权限、并安装debug版magisk 下载地址去上面吾爱论坛作者文章下载吧&#xff01;支持他一下&#xff01; 2、打开magisk的app&#xff0c;点击安装 如果弹出获取权限&#xff0c;直接…

《A Few Useful Things to Know about Machine Learning》论文导读

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl机器学习作为人工智能领域的重要分支,近年来得到了广泛的关注和应用。Pedro Domingos的经典论文《A Few Useful Things to Know about Machine Learning》为我们提供了对机器学习深入且全面的理解…

前端代码规范- Commit 提交规范

什么是约定式提交 约定式提交&#xff08;Conventional Commits&#xff09;是一种用于代码版本控制的规范&#xff0c;旨在通过明确和标准化提交信息来提高代码协作质量和效率。其基本原则是通过规定提交信息的结构和语义来提高代码版本控制的可读性、可维护性和自动化程度。…

蚁剑webshell连接报错A JavaScript error occurred in the main process

报错如图&#xff1a; 已知解决方式&#xff1a; 将上传shell中文文件名修改为任意的英文文件名即可连接。

uniapp对tabbar封装,简单好用

第一种&#xff0c;效果展示 上代码&#xff0c;新建一个公用组件&#xff0c;tabbar.vue <template><view class"tabbar"><view class"tabbar-item" click"tabbarbtn(0)"><image class"item-image" v-if"…

Unreal Fest 2024 虚幻引擎影视动画制作的普遍问题

一 毛发缓存数据巨大的问题&#xff08;及5个解决方案&#xff09; 在引擎里模拟毛发&#xff0c;并且把它缓存下来&#xff0c;我们就不需要从外部导入了&#xff0c;所以我们要解决的问题就是怎么样在引擎里自由地控制毛发 1.物理场控制 延申 [技术分享]《UE中的世界物理场…

第三天旅游线路预览——从贾登峪到禾木风景区入口

第三天&#xff1a;从贾登峪到禾木风景区&#xff0c;晚上住宿贾登峪&#xff1b; 从贾登峪到禾木风景区入口&#xff1a; 1&#xff09;早上9&#xff1a;00起床&#xff0c;吃完早饭&#xff0c;9&#xff1a;30出发&#xff1b; 2&#xff09;从贾登峪到禾木景区售票厅&am…

CSDN文章无水印转成PDF

文章目录 一、打开检查二、点击进入控制台三、在控制台中输入代码 一、打开检查 f11或者右键打开检查 二、点击进入控制台 三、在控制台中输入代码 (function(){ use strict;var articleBox $("div.article_content");articleBox.removeAttr("style&quo…

云计算之大数据(上)

目录 一、Elasticsearch 1.1 产品组件 1.1.1 X-Pack 1.1.2 Beats数据采集中心 1.1.3 Logstash 1.1.4 Kibana 1.2 架构特性 1.2.1 性能 1.2.2 安全性 1.2.3 可用性 1.2.4 可扩展性 1.2.5 可维护性 1.2.6 国际化 1.3 综合检索分析 1.4 全观测 1.5 大数据检索加速…

斑马鱼的超级大脑,光学脑机接口能否解锁生物行为的终极控制?

今天&#xff0c;让我们一起走进一个令人兴奋的科学领域——光学脑机接口&#xff0c;看看科学家们是如何通过这项技术&#xff0c;首次实现了对斑马鱼全脑活动的实时监控和控制。 从科幻到现实的一步之遥 想象一下&#xff0c;如果能够直接读取和影响生物大脑的神经活动&#…

K8S 发布应用

前言 昨儿个用 unbuntu20.04 又装了一次K8S 用的 kubeadm containerd Cilium (CNI) 又重新撸了一遍 这里只记录 应用发布的笔记 正文 #创建deployment kubectl create deployment nginx --imagenginx #我这边大约30秒后显示为 ready kubectl get deployments kubectl desc…

3GPP协议入门——物理层基础(一)

1. 频段/带宽 NR指定了两个频率范围&#xff0c;FR1&#xff1a;通常称Sub 6GHz&#xff0c;也称低频5G&#xff1b;FR2&#xff1a;通常称毫米波&#xff08;Millimeter Wave&#xff09;&#xff0c;也称高频5G。 2. 子载波间隔 NR中有15kHz&#xff0c;30kHz&#xff0c;6…

基于微信小程序的人才招聘系统的设计与实现

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的人才招聘系统的设计…

Springboot整合websocket(附详细案例代码)

文章目录 WebSocket简述WebSocket是什么&#xff1f;WebSocket 的特点WebSocket 的工作流程WebSocket的消息(帧)格式WebSocket 与 HTTP springboot中整合WebSocketpom依赖实体类配置类握手配置类WebSocket配置类 自定义异常类webSocket服务类websocket中Session的 getBasicRemo…

【第25章】Spring Cloud之Sentinel控制台详解

文章目录 前言一、实时监控二、簇点链路三、流控规则四、熔断规则五、热点规则六、系统规则七、授权规则八、集群流控九、机器列表总结 前言 前面我们详细介绍了Sentinel控制台的安装过程&#xff0c;这里我们来了解各个菜单的功能作用。 一、实时监控 同一个服务下的所有机器…

Docker 安装配置 RocketMq (带代码和可视化界面) 一文搞定

Docker 安装配置 RocketMq 前言RocketMq拆解和分析前置内容1、NameServer2、Broker2、可视化界面SpringBoot RocketMq 实战(后续有需求再继续) 前言 本文着重于基于Docker 安装 RocketMq &#xff0c;默认是有 JAVA和 Docker 环境的&#xff0c;如无 基础&#xff08;java do…

启动spring boot项目时,第三方jar包扫描不到的问题

讲述一下遇到的问题&#xff1a; 在启动类Application上使用ComponentScan 这个注解来扫描第三方的包&#xff0c;然后就会出现报错。异常就是无法加载本地的bean&#xff0c;但是可以加载到第三方的bean&#xff1b; 了解过spring boot启动流程的都知道&#xff0c;Springboo…

局域网远程桌面工具:NoMachine 介绍、安装与使用

局域网远程桌面工具&#xff1a;NoMachine 介绍、安装与使用 NoMachine 简介Linux 安装Windows安装使用 NoMachine 简介 NoMachine是一款很常见的远程桌面工具&#xff0c;尤其在EDA领域&#xff0c;常常被用作远程接入方案。NoMachine可以用于个人远程连接&#xff0c;类似于…