深度学习与飞桨PaddlePaddle Fluid实战(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-25 05:13:18

点击下载

作者:于祥

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

深度学习与飞桨PaddlePaddle Fluid实战

深度学习与飞桨PaddlePaddle Fluid实战试读:

版权

信息

书名:深度学习与飞桨PaddlePaddle Fluid实战

ISBN:978-7-115-51964-1

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。版权

著    于 祥

责任编辑 陈冀康

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315 

内容提要

 

飞桨PaddlePaddle Fluid是百度推出的深度学习框架,不仅支撑了百度公司的很多业务和应用,而且随着其开源过程的推进,在很多行业得到普及、应用和关注。

本书基于最新的飞桨PaddlePaddle Fluid版本,以真实的应用案例介绍如何用飞桨PaddlePaddle解决主流的深度学习问题。全书共14章。本书首先介绍了什么是飞桨PaddlePaddle,然后介绍了其核心设计思想,进而紧紧结合案例介绍了飞桨PaddlePaddle在主流的图像任务领域、NLP领域的应用,最后还探讨了Paddle-Mobile与Anakin框架等高级主题。附录A和B给出了飞桨PaddlePaddle与TensorFlow、Caffe框架的接口中常用层的对比。

本书非常适合对人工智能感兴趣的学生、从事机器学习相关工作的读者阅读,尤其适合想要通过飞桨PaddlePaddle掌握深度学习应用技术的研究者和从业者参考。 前      言  为什么要写作本书

PaddlePaddle是百度公司早在2013年就开始搭建的深度学习框架,推出后在公司内部获得了很多业务的支持和应用。为了能让公司外部的用户参与并使用该框架,百度于2016年9月正式将PaddlePaddle对外开源。

PaddlePaddle已在百度内部具有数年的历史,目前正夜以继日地支持百度的关键业务线。随着深度学习技术的发展,之前的框架设计不再适用新的使用场景,因此百度重新开发了新一代深度学习框架,版本名称为Fluid,并于2017年正式对外发布。在2018年10月的百度世界大会上,PaddlePaddle Fluid正式发布1.0版本,为用户提供更稳定的支持和更丰富的模型库,此后团队继续完善PaddlePaddle Fluid的建设。截至2019年7月4日,我们已经对外发布了Paddle Fluid 1.5版本。为了更好地支持国内开发者及企业使用,以及提升本土化服务,PaddlePaddle现在有了一个正式的中文名字——“飞桨”。

自2018年10月发布以来,PaddlePaddle Fluid获得广大开发者越来越多的关注,根据调研,国内至少70%的深度学习开发者都已经知晓飞桨PaddlePaddle框架。作者在社区、社群、高校教师、参赛选手等各个用户渠道不断地得到大家的反馈——需要一本关于PaddlePaddle Fluid的技术图书来帮助学习,而PaddlePaddle Fluid发布以来确实没有一本正式的技术图书供大家参考。所以在2018年年末,作者开始规划写一本既干货满满又易于理解和学习的PaddlePaddle参考书,就是您手中的这本《深度学习与飞桨PaddlePaddle Fluid实战》。

本书在内容上循序渐进,先介绍如何安装和使用PaddlePaddle,之后较深入地解读PaddlePaddle设计的核心思想。读者在大致了解了PaddlePaddle的使用方式之后,继续深入一些非常实用且流行的深度学习案例,首先逐行对代码进行解读和分析,然后再逐渐通过阅读注释的方式来理解程序的关键逻辑。编程是一门重实践的技能。对于读者来说,能快速掌握PaddlePaddle的使用方法,是阅读和学习本书的首要目标,而通过实际案例来学习编程是非常快速的学习方式。

要使用飞桨PaddlePaddle这样一个深度学习框架,深度学习的理论基础是必不可少的,只有具备了理论知识,你才能知道需要用框架来做什么,这就如同要有汽车的设计图才能制造汽车一样。深度学习的算法思路有别于传统算法,它的学习门槛较高。作为深度学习的研究者,作者也接触过许多深度学习的课程与学习资料。其中大多数教程的不足之处是理论与实践的脱节。有的读者明白原理,但是在实现代码时无从下手;有的读者想赶紧实现一个算法,但是搞不清楚理论细节,也导致在编写代码时无从下手;还有些读者花了很长时间学理论,数学细节学了忘、忘了学,最终放弃。这说明深度学习的理论和实践之间具有鸿沟,最终只有一小部分读者跨越了这个鸿沟,而大部分的读者选择了放弃。所以,在规划和设计本书的内容时,作者力求使每一章的理论和实践都深度契合。每章初始以实战项目为目标,先将目标进行任务拆解,让读者从头思考如果自己来完成这个任务,会怎样来做。然后告诉读者目前主流的方法当初在遇到这个问题时是如何应对的,之后又是如何发展完善的,以及最终如何成为业界主流的。本书的内容结构

飞桨PaddlePaddle是源于产业实践的深度学习框架,擅长于应对实际生产中的种种挑战。本书是第一本飞桨PaddlePaddle Fluid技术图书,通过真实的应用案例介绍飞桨PaddlePaddle如何解决主流的深度学习问题。本书的代码基于最新发布的PaddlePaddle Fluid 1.5编写,相信本书出版后,飞桨PaddlePaddle还会持续发布更新版本。不过读者不用担心,当框架新版本升级时,算子会向前兼容旧版本的编码形式,因此本书中代码和更新后的版本框架不会出现不匹配问题。

本书共14章。每一章都有相应的理论解读与代码实现。

各章的主要内容如下。

第1章介绍飞桨PaddlePaddle平台的生态状况与优势,并讲述具有免费算力支持的在线AI编程平台AI Studio。

第2章从安装入手,帮读者轻松开始使用PaddlePaddle。

学习完第3章后,读者会对PaddlePaddle建立初步的感性认知。

第4章开始解读PaddlePaddle设计思想与核心技术,使读者在体会PaddlePaddle设计精妙的同时,在学习后续的实践章节时游刃有余。

第5~7章介绍主流的图像处理任务的基本原理与应用,先讲解6种经典的图像分类结构的实现方式,包含VGG16、GoogleNet、Alexnet、Resnet、MobileNet V2和ShuffleNet V2,然后讲述Fast R-CNN、Faster R-CNN、SSD、PyramidBox、ICNet、DeepLab v3+、Mask R-CNN等的实现方式。

考虑到NLP领域的读者较少会涉及深度学习开发,为了让这部分读者能够较快地掌握NLP的基础知识,第8~12章通过推荐系统、情感分析、语义角色标注、机器翻译等当下流行的案例,循序渐进地介绍NLP技术的PaddlePaddle实现。

第13和第14章首次公开介绍PaddlePaddle生态中的其他两个框架Paddle-Mobile与Anakin。在Paddle-Mobile的赋能下,手机百度频繁地在AI开发者大会上推出新的AI技术。在2019年百度AI开发者大会上,手机百度展示了强大的端侧图像推理能力。

为了方便其他框架的开发者体验飞桨PaddlePaddle,附录中列出了飞桨PaddlePaddle Fluid与TensorFlow、Caffe框架的接口中常用层的对照表,以帮助有深度学习开发经验的读者轻松地将其他框架的模型改写为飞桨PaddlePaddle代码。本书的目标读者

本书非常适合以下读者和人群:● 对人工智能感兴趣的学生;● 从事机器学习科研与教学工作的高校教师;● 想要学习深度学习技术的开发者;● 人工智能领域的研究者和从业者。

在阅读本书之前,读者最好具备以下要求:● 熟悉Linux系统的基本环境与操作;● 具备基本编程能力并了解Python的语法,能编写较简单的Python

程序;● 了解基础的深度学习理论。

虽然本书各章是根据循序渐进的顺序来设立的,但除了理论知识之外,各章之间的代码是相互独立的。如果您只对某个具体领域的知识和内容感兴趣,完全可以单独阅读该章,学习和掌握需要的内容。配套资源

读者可以通过扫描一下二维码,访问本书配套的AI Studio项目。

也可以通过Googol.ai访问作者的博客,或者访问异步社区(www.epubit.com)的本书页面,下载本书的配套代码。

作者和出版社花费了大量的精力来编写、审阅书稿,即使已经对全书内容及代码再三审校,也难免出现疏漏之处。如果您对本书有任何疑问或者想要继续学习PaddlePaddle,可以通过Googol.ai访问作者的个人博客。关于本书的疑问或者勘误,请发送邮件到Yimitrii@Gmail.com。作者简介

于祥,现任百度PaddlePaddle技术运营负责人。2015年开始研究神经网络技术,早期从事基于深度学习的身份认证技术研发,曾负责上海智慧城市项目和华润集团项目的算法支持。在校学习时曾获得ACM-ICPC与CCCC-GPLT银奖。致谢

诚挚感谢百度AI技术生态部喻友平总经理,喻友平总经理夜以继日地辛勤工作,让飞桨变得世人皆知,他用心将飞桨PaddlePaddle用户培养成飞桨社区的中坚力量,推动飞桨建设更符合国人的需求。

感谢周奇老师,在我遇到困难的时候会毫无隔阂地根据他的职业阅历给出建议。他对本书提出了一些关键的意见和建议,使本书质量得到保障。

感谢杜哲老师对我的指引,杜哲老师不仅使我在工作认知上得到了提升,还让我了解到我不曾看到的人生规律,使我对人生规划更加精准。他是一位非常专业的领导,更是一位“授人以渔”的老师。

衷心感谢田野老师耐心地帮助我认识到这个世界的真实的面貌以及事情表面背后难以察觉的因果关系。她是一位可遇不可求的职场前辈!

感谢百度深度学习技术平台部总监马艳军博士、于佃海总架构师为百度贡献了智能时代的操作系统,他们的辛勤付出使得飞桨在功能上和性能上都可以比肩业界主流标准,让飞桨这个开源开放的大框架如此强大。

感谢百度首席技术官王海峰老师带领飞桨走向今日的成就。

感谢李永会架构师为本书第13章提供的内容和资料。

感谢庄熠、靳伟、程思、高峰、江列霖、刘毅冰、何天健、许瑾、骆涛、殷晓婷、郭晟等百度同事提供的技术资料与指导。

感谢人民邮电出版社信息技术第一分社陈冀康副社长、谢晓芳编辑对本书出版的支持,使本书得以如期面市。

感谢所有关注飞桨的朋友,你们的关注与支持是飞桨前进的动力!第1章 飞桨PaddlePaddle简介与AI Studio的使用1.1 飞桨PaddlePaddle简介

飞桨PaddlePaddle是百度自主研发的开源深度学习框架。飞桨PaddlePaddle是集深度学习核心框架、工具组件和服务平台于一体的技术领先、功能完备的开源深度学习平台,拥有活跃的开发者社区。

作为领先的核心框架,飞桨PaddlePaddle具备简单、易用、高效、安全的特点,能满足模型开发、训练、部署的全流程需求。

飞桨PaddlePaddle拥有丰富的工具组件。飞桨PaddlePaddle开放了PaddleHub、PARL、AutoDL Design、VisualDL等一系列深度学习工具组件。

飞桨PaddlePaddle具备专业的服务平台——AI Studio和EasyDL,可以满足不同层次的深度学习开发的需求。

图1-1展示了飞桨PaddlePaddle的生态结构。图1-1

PaddlePaddle源于业界顶尖实践,拥有强大的超大规模并行深度学习处理能力,它具备4大工业级特点。● 提供高性价比的多机GPU参数服务器训练方法。● 全面支持大规模异构计算集群。● 同时支持稠密参数和稀疏参数场景的超大规模深度学习并行训

练。● 支持千亿规模参数、数百个节点的高效并行训练。

PaddlePaddle在速度上追求极致的体验,推出了全流程、全类型的高性能部署和集成方案,在计算性能与易用性上具备3大特性。● 支持千亿规模参数、数百个节点的高效并行训练。● 提供性能全面领先的底层加速库和推理引擎——Paddle Mobile

和Paddle Serving。● 通过两行Python代码就可调用的自动化模型压缩库PaddleSlim。1.2 飞桨PaddlePaddle的工具组件1.2.1 PaddleHub——简明易用的预训练模型管理框架

迁移学习(Transfer Learning)是深度学习的一个子研究领域,其目标在于利用数据、任务或模型之间的相似性,将在旧领域学习过的知识,迁移和应用到新领域中。迁移学习吸引了很多研究者投身其中,因为它能够很好地解决深度学习中的以下几个问题。● 一些研究领域只有少量标注数据,且数据标注成本较高,不足以

训练一个足够鲁棒的神经网络。● 大规模神经网络的训练依赖于大量的计算资源,这对于一般用户

而言难以实现。● 适应于普适化需求的模型,在特定应用上表现不尽如人意。

PaddleHub是基于飞桨PaddlePaddle开发的预训练模型管理工具,目前的预训练模型覆盖了图像分类、目标检测、词法分析、Transformer、情感分析五大类别。PaddleHub通过命令行工具,可以方便快捷地完成模型的搜索、下载、安装、预测等功能。PaddleHub提供了基于PaddlePaddle 实现的 Finetune API,重点针对大规模预训练模型的 Finetune 任务做了高阶的抽象,让预训练模型能更好地服务于用户特定场景,如图1-2所示。通过大规模预训练模型结合Finetune API,可以在更短的时间完成模型的收敛,同时具备更好的泛化能力。通过命令行接口,用户可以便捷地获取PaddlePaddle 生态下的预训练模型。PaddleHub引入了“模型即软件”的理念,无须编写代码,命令行一键完成预训练模型预测;借助PaddleHub Finetune API,使用少量代码就可以完成迁移学习。图1-21.2.2 PARL——基于飞桨PaddlePaddle的深度强化学习框架

作为AI技术发展的重要分支,除了应用于模拟器和游戏领域之外,强化学习在工业领域也取得了长足的进步。强化学习的主要思想是基于智能体(agent)和环境(environment)的交互学习,其中机器人通过动作影响环境,环境返回一个回馈和当前环境下的状态,整个交互过程是一个马尔可夫决策过程。在交互学习的过程中,没有人的示范,而是让机器自主去做一个动作,让机器拥有自我学习和自我思考的能力。强化学习能够解决有监督学习方法无法解决的很多问题。

PARL是一款基于飞桨PaddlePaddle打造的深度强化学习框架,继1.0版本开源了NeurIPS 2018假肢挑战赛冠军训练代码以及主流强化学习模型后,聚焦于并行的1.1版本也发布了。PARL 1.1通过一个简单的修饰符(@parl.remote_class)即可实现并行化,支持高质量的并行算法,包括IMPALA、GA3C、A2C,并提供了高性能的并行开发接口。以通过PARL实现的IMPALA算法的评估结果为例,在雅达利这个经典评测环境中,Pong游戏最快可在7分钟内达到20分(见图1-3),Breakout游戏可在25分钟达到400分(1个P40 GPU +32个CPU)。图1-3

PARL具有高度灵活性和可扩展性,支持可定制的并行扩展,覆盖DQN、DDPG、PPO、IMPALA、A2C、GA3C 等主流强化学习算法。通过8块GPU拉动近20000个CPU节点的运算,将近5小时迭代一轮的PPO 算法加速到1分钟内并且在NeurIPS 2018夺冠。1.2.3 AutoDL Design——让深度学习来设计深度学习

基于飞桨PaddlePaddle和PARL强化学习框架,百度进行了自动化网络结构设计的探索和尝试,并且开源了其中关于自动化网络结构设计的源代码和对应的预训练模型,将AutoDL这一前沿技术以更低的成本展示给业界和各位开发者,大幅降低了该类技术的门槛。

百度的研究员和工程师使用自动网络结构搜索的方法,目标是找到合适的“局部结构”,即首先搜索得到一些合适的局部结构作为零件,然后类似流行的Inception结构那样,按照一定的整体框架堆叠成一个较深的神经网络。整个搜索过程是基于增强学习思想设计出来的。因此很自然地包括了两个部分:第一个部分是生成器,对应增强学习中的智能体,用于采样(sample),生成网络结构;第二个部分是评估器,用于计算奖励(reward),即用新生成的网络结构去训练模型,把模型的准确率(accuracy)或者损失函数(loss function)返回给生成器,如图1-4所示。图1-4

目前已发布用AutoDL Design方法生成的一系列神经网络,以及使用CIFAR10数据集在其上训练出来的6个模型,包括了网络结构以及对应的权重。开发者可以在这6个模型上进行推理(inference)以及模型融合。读者可以下载、安装和运行,尝试生成属于自己的、全新的神经网络结构。

AutoDL包含网络结构自动化设计、迁移小数据建模、适配边缘计算3个部分。使用开源的AutoDL Design网络结构自动化设计技术设计的图像分类网络,在CIFAR10 数据集中进行图像分类的正确率达到了98%,效果超过人类专家,居于业内领先位置。1.2.4 VisualDL——深度学习可视化工具库

VisualDL是一个面向深度学习任务设计的可视化工具。VisualDL原生支持Python的使用,只需要在模型中增加少量的代码,对VisualDL接口进行调用,便可以为训练过程提供丰富的可视化支持。除了Python SDK之外,VisualDL底层采用C++编写,其暴露的C++ SDK也可以集成到其他框架中,实现原生的性能和定制效果。用户也可以通过对C++ SDK进行封装,提供其他脚本语言的SDK。VisualDL目前支持标量、直方图、图像、音频、文本、高维图这6种可视化组件。

VisualDL帮助开发者方便地观测训练整体趋势、数据样本质量、数据中间结果、参数分布和变化趋势、模型的结构,快速地处理深度学习任务,完美地可视化深度学习过程。1.2.5 模型转换工具X2Paddle

深度学习的应用主要包括两个部分:一是通过深度学习框架训练出模型,二是利用训练出来的模型进行预测。开发者基于不同的深度学习框架能够得到不同的训练模型,如果想要基于一种框架进行预测,就必须要解决不同框架的模型之间的匹配问题。基于这种考虑,为了帮助用户快速从其他框架迁移,飞桨PaddlePaddle开源了模型转换工具X2Paddle。

X2Paddle可以将TensorFlow、Caffe 的模型转换为飞桨PaddlePaddle的核心框架Paddle Fluid可加载的格式。同时X2Paddle还支持ONNX格式的模型转换,这也相当于支持了众多可以转换为ONNX格式的框架,比如PyTorch、MXNet、CNTK等。1.3 飞桨PaddlePaddle在百度内部支持的案例

飞桨PaddlePaddle为百亿数据规模推荐业务提供了分布式训练及预测支持。● 项目背景。千人千面的个性化推荐能力在市场上被广泛应用并在

优化用户体验方面发挥着极其重要的作用。而个性化点击率预估

模块是实现个性分发的重要手段。对于拥有超大规模用户体量、

海量内容库及高达百亿级别用户点击量的推荐系统,如何处理拥

有自膨胀特点的海量特征数据以及如何得到高频率迭代的模型,

成为推荐系统是否成功的关键。● 应用方案。飞桨PaddlePaddle通过提供一种高性价比的多机CPU

参数服务器训练方法,可有效地解决超大规模推荐系统、超大规

模数据、自膨胀的海量特征及高频率模型迭代的问题,拥有超大

吞吐量及高效率,如图1-5所示。图1-5● 应用产品。比如,百度搜索、百度糯米、好看视频、百度地图、

百度翻译。● 应用效果。基于真实的推荐场景的数据验证(1.4亿总样本数中

统计了1.8 亿独立特征,平均每条样本有117个特征,单条样本

平均有1000个稀疏特征量),PaddlePaddle 在100个节点×10个

线程/节点的情况下,吞吐量可达每秒60万~140万条样本,每小

时可处理20亿~50亿条样本数据,且在批大小为512的情况下达

到90% 的加速比,如图1-6和图1-7所示。图1-6图1-71.4 飞桨PaddlePaddle与TensorFlow的对比

从用法上来说,PaddlePaddle相对较规整,TensorFlow使用相对较灵活。● PaddlePaddle框架可以抽象为模型、参数、事件、数据输入输出

4部分;而TensorFlow没有对参数和事件进行并单独定义,这些

参数都以数组的方式包含在模型中。● PaddlePaddle的数据定义除了类型和维度外,还需要定义许多信

息(是否是序列、细节层次等);TensorFlow只需要定义类型和

维度。● PaddlePaddle定义网络的基本单位为层(layer);TensorFlow定

义的基本单位是向量。● PaddlePaddle定义变量和实际输入数据为间接关联(变量→序号

→reader返回的数据);TensorFlow定义为直接关联(变量→数

据)。

因为第1条和第4条,Paddle定义训练前除了feeding函数外,还需要准备好reader和event_handler;TensorFlow训练定义只需要准备好feeding函数就可以启动训练。1.5 AI Studio简介

AI Studio 是百度推出的一站式开发平台,它是一个囊括了AI教程、代码环境、算法算力、数据集,并提供免费的在线云计算的一体化编程环境,如图1-8所示。用户不必纠结于复杂的环境配置和烦琐的扩展包搜寻,只要打开浏览器并在地址栏中输入aistudio.baidu.com,就可以在 AI Studio 中开始深度学习项目之旅。图1-8

AI Studio开发者可以实现自定义的AI建模能力而无须考虑硬件成本、运维成本、人力成本。相比于在其他云平台付费购买计算资源和存储空间,AI Studio提供全套免费服务(计算资源免费、空间资源免费、项目托管免费,连视频教程也免费)。AI Studio平台集合了AI教程、深度学习样例工程、各领域的经典数据集、云端的运算及存储资源,以及比赛平台和社区,从而解决学习者在AI学习过程中的一系列难题,例如教程水平不一、教程和样例代码难以衔接、高质量的数据集不易获得,以及本地难以使用大体量数据集进行模型训练等。

百度AI Studio平台已经为用户预置了Python语言环境,并且内置了PaddlePaddle最新版本,无须再进行PaddlePaddle安装便可立即在线使用PaddlePaddle框架。同时,用户可以在其中自行加载Scikit-Learn等机器学习库。1.6 在AI Studio中创建项目1.6.1 用户界面简介

在AI Studio中创建项目的界面如图1-9所示。图1-91.6.2 创建并运行一个项目1.创建项目

回到项目大厅页,点击居中的“创建项目”按钮,如图1-10所示。图1-10

将会出现“创建项目”对话框,如图1-11所示。图1-11

该对话框中各选项的作用如下。● 项目环境:语言基础环境,包括Python 2.7(默认)和Python

3.5。● 预加载项目框架:深度学习开发框架,已支持PaddlePaddle最新

版,未来也将集成更多的开发框架。● 配置资源:程序部署运行环境,包括单机、远程集群。单机资源

基于Notebook,交互性更加好。远程集群资源提供大规模机器

支持,训练速度更快。● 项目名称/项目描述:用来标识项目,便于日后进行查找和管

理,创建后支持修改。2.添加数据集

如果项目涉及数据集,可以考虑直接使用系统预置的数据集,点击“添加数据集”按钮,然后出现图1-12所示的浮窗。图1-12

每个项目最多可以引入两个数据集,以便于模型比较在不同数据集下的准确率和召回率。若无合适的数据集,用户也可以自行上传创建新数据集,点击“添加”按钮后自动返回图1-11所示的“创建项目”对话框。

最后,在“创建项目”对话框中,点击“创建”按钮并在弹出对话框中选择“查看”按钮进入项目详情页,如图1-13所示。图1-13

之后在项目详情页,对项目进行编辑,可以对数据集进行变更。1.7 AI Studio单机项目概述1.7.1 页面概览

在项目详情页中,用户可以浏览自己刚创建的项目,并且编辑项目名称及数据集等信息,如图1-14所示。图1-14

页面上部的两个标签页说明如下。● 版本内容:展示当前Notebook最新内容。● Fork记录:项目被其他人复刻的记录。

点击右方“运行项目”按钮进行项目环境初始化。在弹出的对话框中,点击“进入”按钮跳转到项目代码在线编辑Notebook环境,如图1-15所示。图1-15

Notebook的使用说明详见1.8节。1.7.2 复制项目

如果不熟悉相关操作,则可以直接复制百度AI学习项目或者其他开发者共享的项目,加快学习速度,如图1-16所示。图1-161.7.3 VisualDL工具的使用

前面提到,VisualDL是一个面向深度学习任务设计的可视化工具,支持标量数据、参数分布、模型结构、图像可视化等功能。AI Studio单机项目已经集成VisualDL工具,可以在Notebook中编写VisualDL代码。

第一步,在训练代码中增加Logger来记录不同种类的数据。注意这里的logdir = "./log",即需要把log目录放到/home/aistudio/log。logdir = "./log"logwriter = LogWriter(logdir, sync_cycle=10)with logwriter.mode("train") as writer: loss_scalar = writer.scalar("loss")

第二步,使用PaddlePaddle API创建训练模型。def vgg16_bn_drop(input): pass

第三步,开始训练并且同时用VisualDL来采集相关数据。 loss_scalar.add_record(step, loss)

第四步,在Web浏览器中输入URL访问。URL生成规则是将项目地址中的notebooks及之后部分替换为visualdl。#notebooks项目的URLurl_notebook = 'http://aistudio.baidu.com/user/30799/33852/notebooks/33852.ipynb? redirects=1'#替换后的URLurl_visualdl = 'http://aistudio.baidu.com/user/30799/33852/visualdl'1.8 Notebook环境使用说明1.8.1 Notebook页面概览

当前Notebook编辑界面由如下几个部分组成,如图1-17所示。● 操作区。● Notebook内容编辑区。● 数据集。● 工具栏,提供了保存、导出、重载Notebook,以及重启内核等

选项。图1-17

以下对每个区域的操作分别说明。1.8.2 操作区

操作区如图1-18所示。图1-181.新建块

点击可以分别插入代码块或文字块。● 代码块。代码可以运行,点击“运行”,会在下方输出结果,如

图1-19所示。图1-19● 文字块。支持Markdown格式,点击“预览”则出现渲染后的效

果(但下方不会出现运行结果),如图1-20所示。图1-20

选中某个块,然后点击,则可以使其在代码/文字之间进行切换。2.操作块

点击中的“运行”,对于代码块,则自动执行该块内容,同时激活下一个块。如果连续点击“运行”,则顺次执行。

块执行时,左侧的In[ ]会变成In[*],以示当前该块正在执行中。

如果发现代码不尽如人意,可以点击“中断”,中断所有代码块的执行,通常需要耗时数十秒才能完全停止。

如果需要重置整个项目环境,清除中间变量,则可以点击“重启”按钮。1.8.3 Notebook内容编辑区1.命令/编辑模式

Notebook内容编辑区由基本的块(cell)组成。绿色代表块内容为可编辑状态——编辑模式(比如输入代码),蓝色代表块为可操作状态——命令模式(比如删除块,必须回到蓝色),与Linux编辑器Vi/Vim类似。编辑模式和命令模式之间可以用Esc键和Enter键来切换。

Notebook的编辑模式如图1-21所示。图1-21

Notebook的命令模式如图1-22所示。图1-222.鼠标操作

鼠标操作方式如图1-23所示。图1-233.快捷键操作

表1-1列出了常用快捷键操作。表1-1 Notebook两种模式下的常用快捷键操作模式内容快捷键快捷键(Windows)(Mac)命令模式(通过Esc键切换)运行块Shift+EnterShift+Enter命令模式在下方插入块BB命令模式在上方插入块AA命令模式删除块d+dd+d命令模式切换到编辑模EnterEnter式编辑模式(通过Enter键切运行块Shift+EnterShift+Enter换)编辑模式缩进Clrl+]Command+]编辑模式取消缩进Ctrl+ [Command+ [编辑模式注释Ctrl+/Command+/编辑模式函数内省TabTab4.代码块In提示符

In提示符参见表1-2。表1-2 In提示符提示符含义In[ ]程序未运行In[num]程序运行后In[*]程序正在运行5.Linux命令

运行Linux命令的方式是在Linux命令前加一个“!”,这样就可以在块里运行命令了,如图1-24所示。图1-24

通过Tab键查看提示信息或者补全命令,如图1-25所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载