上云无忧 > 文档中心 > 零基础实践深度学习 - AI Studio基本操作(一) Notebook篇
飞桨PaddlePaddle开源深度学习平台
零基础实践深度学习 - AI Studio基本操作(一) Notebook篇

文档简介:
Hi 大家好, 我是百度AI Studio小助手. 大家在学习《百度架构师手把手带你零基础入门深度学习》课程的过程中将会经常使用到AI Studio中的Notebook项目,所以今天给大家介绍一些Notebook项目基本操作.
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

Hi 大家好, 我是百度AI Studio小助手.

大家在学习《百度架构师手把手带你零基础入门深度学习》课程的过程中将会经常使用到AI Studio中的Notebook项目,所以今天给大家介绍一些Notebook项目基本操作.

项目启停
执行和调试
多文件代码编辑
上传Notebook
Notebook快捷键
暗黑模式
字号调节
Notebook中使用Shell命令
    使用pip来安装自己需要的package (但不支持apt-get)
    查看当前环境中安装的package
    持久化安装
        使用git命令来同步代码 (暂时需要Paddle 1.4.1以上)
    文件下载
Python代码执行与调试
变量监控
Magic命令
     %env:设置环境变量
     %run: 运行python代码
     %%writefile and %pycat: 导出cell内容/显示外部脚本的内容
关于快速查看某个对象/方法/接口的用法
关于变量监控
关于调试代码

项目启停

当进入自己项目的详情页面时, 用户可以选择"运行"项目, 也就是准备项目环境.

同样的, 当不想继续时, 可以此页面点击"停止"以终止项目.


当启动项目时, 如个人信息完整, 则可以获得算力奖励


主动填写个人信息的入口在右上角的个人中心里

执行和调试

基于Notebook的方案和传统IDE方案略有不同, 请见下图:

插入断点则需要使用Python自带Debugger: PDB. 用法请点击这里:

PDB用法

多文件代码编辑

本系统的Notebook支持多文件编辑, 支持.py, .json, .txt, .log等格式的在线编辑, 支持部分图片类型文件的在线预览.

上传文件的体积是150MB. 如果需要引用更大体积的文件, 请使用数据集功能.

用户也可以使用命令, !cat

上传Notebook

可以用自己的ipynb文件取代当前默认的Notebook(前提是格式合法). 此举会覆盖当前项目中的默认notebook文件.

Notebook快捷键

和原生Notebook快捷键基本一致.

快捷键分成两种状态下的. 一个是命令模式, 一个是编辑模式, 掌握之后事半功倍.


暗黑模式

经常有小伙伴来咨询如何使用暗黑模式(Dark Theme), @ACK白纸 同学提供了一个快捷方案: 使用浏览器插件.

Chrome下请搜索: 夜间眼睛

Firefox下请搜索: Dark Reader.

最终效果如下:

@ACK白纸 同学还推荐了更多有用的插件, 可以点击这里. 很有帮助哦

字号调节

如果觉得字体太小看不清楚, 可在左侧设置区找到相关设置进行调节:

Notebook中使用Shell命令

通过在Shell命令前添加! (感叹号), 就可以执行部分Shell命令. 包括诸如 !pip install这样的命令. 不过, !apt-get这种可能引发用户进一步操作的命令是不支持的.

下面是两个示例.

# 查看当前挂载的数据集目录 !ls /home/aistudio/data/
data269
#显示当前路径 !pwd
/home/aistudio

使用pip来安装自己需要的package (但不支持apt-get)

例如:

!pip install jupyterthemes

查看当前环境中安装的package

!pip list --format=columns
Package            Version        
------------------ ---------------
absl-py            0.8.1          
attrs              19.2.0         
backcall           0.1.0          
bleach             3.1.0          
certifi            2019.9.11      
chardet            3.0.4          
Click              7.0            
cloudpickle        1.2.1          
cma                2.7.0          
cycler             0.10.0         
Cython             0.29           
decorator          4.4.0          
entrypoints        0.3            
Flask              1.1.1          
funcsigs           1.0.2          
future             0.18.0         
graphviz           0.13           
grpcio             1.24.1         
gym                0.12.1         
h5py               2.9.0          
idna               2.8            
imageio            2.6.1          
imageio-ffmpeg     0.3.0          
importlib-metadata 0.23           
ipykernel          5.1.0          
ipython            7.0.1          
ipython-genutils   0.2.0          
itsdangerous       1.1.0          
jedi               0.15.1         
Jinja2             2.10.1         
jsonschema         3.1.1          
jupyter-client     5.3.3          
jupyter-core       4.5.0          
kiwisolver         1.1.0          
Markdown           3.1.1          
MarkupSafe         1.1.1          
matplotlib         2.2.3          
mistune            0.8.4          
more-itertools     7.2.0          
moviepy            1.0.1          
nbconvert          5.3.1          
nbformat           4.4.0          
nltk               3.4.5          
notebook           5.7.0          
numpy              1.16.4         
opencv-python      4.1.1.26       
paddlehub          1.2.0          
paddlepaddle-gpu   1.5.1.post97   
pandas             0.23.4         
pandocfilters      1.4.2          
parl               1.1.2          
parso              0.5.1          
pexpect            4.7.0          
pickleshare        0.7.5          
Pillow             6.2.0          
pip                19.2.3         
prettytable        0.7.2          
proglog            0.1.9          
prometheus-client  0.5.0          
prompt-toolkit     2.0.10         
protobuf           3.10.0         
ptyprocess         0.6.0          
pyarrow            0.13.0         
pyglet             1.4.5          
Pygments           2.4.2          
pyparsing          2.4.2          
pyrsistent         0.15.4         
python-dateutil    2.8.0          
pytz               2019.3         
PyYAML             5.1.2          
pyzmq              18.0.1         
rarfile            3.1            
recordio           0.1.7          
requests           2.22.0         
scikit-learn       0.20.0         
scipy              1.3.0          
Send2Trash         1.5.0          
setuptools         41.4.0         
simplegeneric      0.8.1          
six                1.12.0         
sklearn            0.0            
tb-nightly         1.15.0a20190801
tb-paddle          0.3.6          
tensorboardX       1.8            
termcolor          1.1.0          
terminado          0.8.2          
testpath           0.4.2          
tornado            5.1.1          
tqdm               4.36.1         
traitlets          4.3.3          
urllib3            1.25.6         
visualdl           1.3.0          
wcwidth            0.1.7          
webencodings       0.5.1          
Werkzeug           0.16.0         
wheel              0.33.6         
zipp               0.6.0          
#以及使用下方命令查看预装软件 !apt list

持久化安装

如果需要进行持久化安装, 需要使用持久化路径, 如下方代码示例:

!mkdir /home/aistudio/external-libraries
!pip install beautifulsoup4 -t /home/aistudio/external-libraries

同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可:

import sys
sys.path.append('/home/aistudio/external-libraries')

使用git命令来同步代码

例如:

%cd work/
/home/aistudio/work
!git clone https://github.com/PaddlePaddle/Paddle.git #Paddle官方模型

可以看到同步后work目录下出现一个Models文件夹

也可以活用Git命令进行本地代码管理.

注意: Paddle的Git体积过大, 同步会非常迟缓. 建议使用浏览器插件, 对指定目录进行下载, 然后上传至AI Studio的项目空间中. Chrome版

或是用svn: 比如你要下载这个https://github.com/mozilla/pdf.js/tree/master/test/pdfs ,将/tree/master/换成/trunk/即可

svn checkout https://github.com/mozilla/pdf.js/trunk/test/pdfs


文件下载

文件下载分为"文件夹打包下载"和"单一文件下载", 两者操作按钮在同一位置:

但文件夹下载可能耗时比较久, 每次只能下载一个文件夹内容, 也可能需要较长时间等待.

Python代码执行与调试

Notebook执行Python代码的原理和传统IDE略有不同.

  1. 传统IDE, 当点击Run按钮时, 编译器/解释器开始构建一个进程. 用户通过单步执行/设置断点进行代码调试和变量监控. 当代码出错, 或用户点击Stop按钮时, 进程被杀死, 资源回收.

而Notebook, 一旦启动, 就是开始创建一个"进程"(kernel). 每一个Cell, 都是一个天然的断点. 当代码出错, 或用户点击Stop按钮时, "进程"通常也不会被杀死.

因此如果代码陷入死循环等情况, 需要用户手动关闭并重启该"进程".

  1. 此外, Notebook的Cell是可以随意颠倒顺序来执行的. 这点和传统IDE有很大不同.

  2. 作为前端的Notebook, 与后端的进程(kernel), 建立有一个Session. 本平台支持terminal功能. 也就可以同时支持多个Session来控制kernel.

变量监控

因为Notebook的Cell是可以随意颠倒顺序来执行的, 因此本平台自带"变量监控"和"运行历史". 方便用户了解当前代码运行状态.

通过重启环境并清空输出, 可以消除已生成的变量监控.


2. Magic命令

Magic命令是Notebook的高级用法了. 可以运行一些特殊的指令. Magic 命令的前面带有一个或两个百分号(% 或 %%),分别代表行 Magic 命令和单元格 Magic 命令。行 Magic 命令仅应用于编写 Magic 命令时所在的行,而单元格 Magic 命令应用于整个单元格。

举个例子:

#显示全部可用的Magic命令 %lsmagic

Available line magics: %alias %alias_magic %autoawait %autocall %automagic %autosave 
%bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_
mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_
ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %ma
n %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %p
info2 %popd %pprint %precision %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole
 %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run
 %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls 
%whos %xdel %xmode Available cell magics: %%! %%HTML %%SVG %%bash %%capture %%debug %%fil
e %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%pyt
hon3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile Automagic is ON,
 % prefix IS NOT needed for line magics.

#使用Magic命令来统计运行时长 import random
%%timeit

prize = 0 for i in range(100):
    roll = random.randint(1, 6) if roll%2 == 0:
        prize += roll else:
        prize -= 1 
175 µs ± 2.12 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

甚至还可以直接嵌入可视化内容, 例如%matplotlib inline:

%matplotlib inline
%config InlineBackend.figure_format = 'retina' import matplotlib.pyplot as plt import numpy as np

x = np.linspace(0,1,300) for w in range(2,6,2):
    plt.plot(x, np.sin(np.pi*x)*np.sin(2*w*np.pi*x))


		

这里需要注意的是, 一个Cell要输出多张图片, 代码写法和输出一张时不一样. 写法不正确的话, 可能会有显示异常的问题

此外, 如要显示汉字, 也需要提前处理, 可以参见这里


%env:设置环境变量

使用该命令, 可以在不必重启Kernel的情况下管理notebook的环境变量

# Running %env without any arguments # lists all environment variables # The line 
below sets the environment # variable OMP_NUM_THREADS %env OMP_NUM_THREADS=4
env: OMP_NUM_THREADS=4


%run: 运行python代码

使用%run 可以运行.py格式的python代码

当然是用!python也是可以的

我在项目空间中上传了一个.py文件, 里面只有一行print代码. 我们执行一下看看.

%run work/SampleOfRun.py
It's a demo code written in file SampleOfRun.py
!python work/SampleOfRun.py
It's a demo code written in file SampleOfRun.py

%%writefile and %pycat: 导出cell内容/显示外部脚本的内容

AI Studio当前支持一定格式文件的预览和处理, 如果您的格式比较特殊, 尚未支持的话, 不妨试试这两个命令.

%%writefile magic可以把cell的内容保存到外部文件里。 而%pycat则可把外部文件展示在Cell中

%%writefile SaveToPythonCode.py from math import sqrt for i in range(2,10):
    flag=1 k=int(sqrt(i)) for j in range(2,k+1): if i%j==0:
            flag=0 break if(flag):
            print(i)
Writing SaveToPythonCode.py

因为没有指定路径, 所以文件被保存到了根目录下. 但至少it works.

我们再来尝试从中读文件内容

%pycat SaveToPythonCode.py

更多Magic命令可以点击这里查询 Magic命令


关于快速查看某个对象/方法/接口的用法

在要查询的对象前输入?或??并执行即可. 单问号是普通信息, 双问号是详细信息.

前提: 该对象方法已经被正确导入(import)

示例:

import paddle import paddle.fluid
?paddle.fluid.layers.conv3d

关于变量监控

你可以通过修改内核选项ast_note_interactivity,使得Jupyter对独占一行的所有变量或者语句都自动显示,这样你就可以马上看到多个语句的运行结果了。

!pip install pydataset
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all" from pydataset import data

quakes = data('quakes')
quakes.head()
quakes.tail()
initiated datasets repo at: /home/aistudio/.pydataset/

lat long depth mag stations 1 -20.42 181.62 562 4.8 41 2 -20.62 181.03 650 4.2 15 3 -
26.00 184.10 42 5.4 43 4 -17.97 181.66 626 4.1 19 5 -20.42 181.96 649 4.0 11

lat long depth mag stations 996 -25.93 179.54 470 4.4 22 997 -12.28 167.06 248 4.7
 35 998 -20.13 184.20 244 4.5 34 999 -17.40 187.80 40 4.5 14 1000 -21.59 170.56 165 6.0 119


关于调试代码

Notebook自带一个调试器, 叫The Python Debugger (pdb),我们来看看它是如何工作的.

# 对, 它也是依赖Magic命令启动的. # 理论上pdb是可以通过脚本形式来启动. 但是在Notebook中不行, 
会造成阻断 %pdb def reverse(x: int) -> int: inputnumber = x.__str__()
    reversedStr = inputnumber[::-1]
    strOriLen = len(reversedStr)
    result = list()
    flag = 1 for i in range(0, strOriLen): if i == (strOriLen -1) and reversedStr[i] == '-' :
            flag = -1 else:
            result.append(reversedStr[i])
    outputs = ''.join(result)
    outputInt = int(outputs)        
     
    outputInt = outputInt * flag if outputInt > pow(2,31)-1 or outputInt < -1 * pow(2,31):
        outputInt = 0 return outputInt

print(reverse(134))
Automatic pdb calling has been turned OFF
431

有余力的与兴趣的同学可以继续了解AI Studio其它基本操作。

AI Studio基本操作(二)

相似文档
  • Python数据结构、 Python面向对象、 Python JSON、 Python 异常处理、 常见Linux命令。 Python数据结构: 数字、字符串、列表、元组、字典。
  • 为什么图片能被计算机读取?为什么我们可以用CNN对成千上万中图片进行分类,这背后的原理是什么?在了解原理之前,先给大家补点数学知识。因为无论是深度学习还是机器学习,背后都是有一些数学原理和公式推导的,所以掌握必备的数学知识必不可少,下面会给大家简单科普下常用的数学知识有哪些~
  • 环境准备: 处理器:SW6A。 操作系统:普华, iSoft Linux 5。 Python 版本 2.7.15+/3.5.1+/3.6/3.7/3.8 (64 bit)。 pip 或 pip3 版本 9.0.1+ (64 bit)。 申威机器为 SW 架构,目前生态支持的软件比较有限,本文以比较 trick 的方式在申威机器上源码编译 Paddle,未来会随着申威软件的完善不断更新。
  • 环境准备: 处理器:ZHAOXIN KaiSheng KH-37800D。 操作系统:centos7。 Python 版本 2.7.15+/3.5.1+/3.6/3.7/3.8 (64 bit)。 pip 或 pip3 版本 9.0.1+ (64 bit)。 兆芯为 x86 架构,编译方法与Linux 下从源码编译 cpu 版一致。 安装步骤: 本文在 ZHAOXIN 处理器下安装 Paddle,接下来详细介绍各个步骤。
  • 百度昆仑 AI 计算处理器(Baidu KUNLUN AI Computing Processor)是百度集十年 AI 产业技术实践于 2019 年推出的全功能 AI 芯片。基于自主研发的先进 XPU 架构,为云端和边缘端的人工智能业务而设计。 百度昆仑与飞桨及其他国产软硬件强强组合,打造一个全面领先的国产化 AI 技术生态,部署和应用于诸多 “人工智能+“的行业领域,包括智能云和高性能计算,智慧制造、智慧城市和安防等。更多昆仑 XPU 芯片详情及技术指标请 点击这里 。 参考以下内容可快速了解和体验昆仑 XPU 芯片上运行飞桨:
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部