一本既干货满满又易于理解和学习的PaddlePaddle参考书

一本既干货满满又易于理解和学习的PaddlePaddle参考书PaddlePaddle是百度公司早在2013年就开始搭建的深度学习框架,推出后在公司内部获得了很多业务的支持和应用。为了能让公司外部的用户参与

大家好,欢迎来到IT知识分享网。

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是源于产业实践的深度学习框架,擅长于应对实际生产中的种种挑战。本书是第一本飞桨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代码。

本书的目标读者

本书非常适合以下读者和人群:

  1. 人工智能感兴趣的学生;
  2. 从事机器学习科研与教学工作的高校教师;
  3. 想要学习深度学习技术的开发者;
  4. 人工智能领域的研究者和从业者。

在阅读本书之前,读者最好具备以下要求:

  • 熟悉Linux系统的基本环境与操作;
  • 具备基本编程能力并了解Python的语法,能编写较简单的Python程序;
  • 了解基础的深度学习理论。

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

作者简介

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

样章试读截选:

第1章 飞桨PaddlePaddle简介与AI Studio的使用

1.1 飞桨PaddlePaddle简介

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

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

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

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

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

一本既干货满满又易于理解和学习的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,使用少量代码就可以完成迁移学习。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-2

1.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)。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图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所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图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所示。
一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-5

  • 应用产品。比如,百度搜索、百度糯米、好看视频、百度地图、百度翻译。
  • 应用效果。基于真实的推荐场景的数据验证(1.4亿总样本数中统计了1.8 亿独立特征,平均每条样本有117个特征,单条样本平均有1000个稀疏特征量),PaddlePaddle 在100个节点×10个线程/节点的情况下,吞吐量可达每秒60万~140万条样本,每小时可处理20亿~50亿条样本数据,且在批大小为512的情况下达到90% 的加速比,如图1-6和图1-7所示。
一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-6

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-7

1.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 中开始深度学习项目之旅。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图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所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-9

1.6.2 创建并运行一个项目

1.创建项目

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-10

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-11

该对话框中各选项的作用如下。

  • 项目环境:语言基础环境,包括Python 2.7(默认)和Python 3.5。
  • 预加载项目框架:深度学习开发框架,已支持PaddlePaddle最新版,未来也将集成更多的开发框架。
  • 配置资源:程序部署运行环境,包括单机、远程集群。单机资源基于Notebook,交互性更加好。远程集群资源提供大规模机器支持,训练速度更快。
  • 项目名称/项目描述:用来标识项目,便于日后进行查找和管理,创建后支持修改。

2.添加数据集

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-12

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

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-13

之后在项目详情页,对项目进行编辑,可以对数据集进行变更。

1.7 AI Studio单机项目概述

1.7.1 页面概览

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-14

页面上部的两个标签页说明如下。

  • 版本内容:展示当前Notebook最新内容。
  • Fork记录:项目被其他人复刻的记录。

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-15

Notebook的使用说明详见1.8节。

1.7.2 复制项目

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-16

1.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,以及重启内核等选项。
一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-17

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

1.8.2 操作区

操作区如图1-18所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-18

1.新建块

点击

一本既干货满满又易于理解和学习的PaddlePaddle参考书

可以分别插入代码块或文字块。

  • 代码块。代码可以运行,点击“运行”,会在下方输出结果,如图1-19所示。
一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-19

  • 文字块。支持Markdown格式,点击“预览”则出现渲染后的效果(但下方不会出现运行结果),如图1-20所示。
一本既干货满满又易于理解和学习的PaddlePaddle参考书

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-20

选中某个块,然后点击

一本既干货满满又易于理解和学习的PaddlePaddle参考书

,则可以使其在代码/文字之间进行切换。

2.操作块

点击

一本既干货满满又易于理解和学习的PaddlePaddle参考书

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

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

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

如果需要重置整个项目环境,清除中间变量,则可以点击“重启”按钮。

1.8.3 Notebook内容编辑区

1.命令/编辑模式

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

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-21

Notebook的命令模式如图1-22所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-22

2.鼠标操作

鼠标操作方式如图1-23所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-23

3.快捷键操作

表1-1列出了常用快捷键操作。

表1-1 Notebook两种模式下的常用快捷键操作(略)

4.代码块In提示符

In提示符参见表1-2。

表1-2 In提示符(略)

5.Linux命令

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-24

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

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-25

在一个库、方法或变量前加上“?”,就可以获得它的一个快速语法说明,如图1-26所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-26

Magic关键字是可以运行的特殊命令,参见表1-3。Magic 命令的前面带有一个或两个百分号(%或%%),分别代表行Magic命令和块Magic命令。行Magic命令仅应用于编写Magic命令时所在的行,而块Magic命令应用于整个块。

表1-3 Magic关键字(略)

示例1:使用%%timeit测试整个块的运行时间,如图1-27所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-27

示例2:块可集成matplotlib,从而进行绘图,但注意绘图前需要输入%matplotlib inline并运行,否则即使运行终端可用的绘图代码段,cell也只会返回一个文件说明,如图1-28所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-28

示例3:查看所有支持的Magic关键字,如图1-29所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-29

示例4:查看当前环境中的Python版本和Paddle版本,如图1-30所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-30

6.文字块说明

除文本外,文字块还可嵌入公式、表格、图片、音乐、视频、网页等。

相关Markdown用法可以参考其官网。

插入图片的方法如下。

(1)点击“编辑”菜单中的“插入图片”,如图1-31所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-31

(2)上传图片,如图1-32所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-32

(3)图片插入成功,如图1-33所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-33

1.8.4 侧边栏

侧边栏如图1-34所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-34

1.文件夹

按照树状结构展示/home/aistudio路径下的文件夹和文件,如图1-35所示。可以在该目录下进行如下操作。

  • 文件夹操作:创建新的文件夹。鼠标悬浮在文件夹条目上,会出现操作按钮,包括删除文件夹、重命名文件夹、路径复制。
  • 文件操作:创建上传文件(上传的单个文件最大为20MB)。鼠标悬浮在文件条目上,会出现操作按钮,包括下载文件、重命名文件、路径复制。
  • 更新操作:如果在代码运行过程中磁盘里的文件更新了,可以手动刷新,在侧边栏查看文件更新的状态。
一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-35 

2.数据集

在数据集栏中,可以复制数据集文件的路径,并置于代码中,如图1-36所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-36

复制数据集路径成功则出现提示,如图1-37所示。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-37

1.8.5 工具栏

顶部工具栏有大量的功能,由于名称使功能一目了然,因此不一一介绍,具体参见图1-38。

一本既干货满满又易于理解和学习的PaddlePaddle参考书

图1-38

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/48413.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信