目录

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

执行和调试

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

多文件代码编辑

本系统的Notebook支持多文件编辑, 支持.py, .json, .txt, .log等格式的在线编辑, 支持部分图片类型文件的在线预览.
上传文件的体积是30MB. 如果需要引用更大体积的文件, 请使用数据集功能.

用户也可以使用命令, !cat <<newfile > newfile.py 在项目空间内直接创建文件, 之后双击进行编辑. 如下图所示:

上传Notebook

可以用自己的ipynb文件取代当前默认的Notebook(前提是格式合法)

Notebook快捷键

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

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


Notebook中使用Shell命令

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

下面是两个示例.

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

/home/aistudio

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

例如:

!pip install jupyterthemes

查看当前环境中安装的package

!pip list --format=columns

Package Version


absl-py 0.8.1
aspy.yaml 1.3.0
astor 0.8.1
astroid 2.4.1
attrs 19.2.0
audioread 2.1.8
autopep8 1.5.3
Babel 2.8.0
backcall 0.1.0
bce-python-sdk 0.8.53
blackhole 0.3.1+5.g4015d80.dirty
bleach 3.1.0
cachetools 4.0.0
certifi 2019.9.11
cffi 1.14.0
cfgv 2.0.1
chardet 3.0.4
Click 7.0
cloudpickle 1.2.1
cma 2.7.0
colorama 0.4.4
colorlog 4.1.0
cycler 0.10.0
Cython 0.29
datatable 1.0.0a0+build.1606902301.jarvis
decorator 4.4.0
entrypoints 0.3
et-xmlfile 1.0.1
flake8 3.8.2
Flask 1.1.1
Flask-Babel 1.0.0
Flask-Cors 3.0.8
forbiddenfruit 0.1.3
funcsigs 1.0.2
future 0.18.0
gast 0.3.3
google-auth 1.10.0
google-auth-oauthlib 0.4.1
graphviz 0.13
grpcio 1.26.0
gunicorn 20.0.4
gym 0.12.1
h2o 3.29.0.99999
h5py 2.9.0
identify 1.4.10
idna 2.8
imageio 2.6.1
imageio-ffmpeg 0.3.0
importlib-metadata 0.23
ipykernel 5.1.0
ipython 7.8.0
ipython-genutils 0.2.0
isort 4.3.21
itsdangerous 1.1.0
jdcal 1.4.1
jedi 0.17.0
jieba 0.42.1
Jinja2 2.10.3
joblib 0.14.1
JPype1 0.7.2
json5 0.9.5
jsonschema 3.1.1
jupyter-client 5.3.4
jupyter-core 4.6.0
jupyter-lsp 0.8.0
jupyterlab 2.1.3
jupyterlab-server 1.1.5
kiwisolver 1.1.0
lazy-object-proxy 1.4.3
librosa 0.7.2
llvmlite 0.31.0
Markdown 3.1.1
MarkupSafe 1.1.1
matplotlib 2.2.3
mccabe 0.6.1
mistune 0.8.4
more-itertools 7.2.0
moviepy 1.0.1
nbconvert 5.3.1
nbformat 4.4.0
netifaces 0.10.9
networkx 2.4
nltk 3.4.5
nodeenv 1.3.4
notebook 5.7.8
numba 0.48.0
numpy 1.16.4
oauthlib 3.1.0
objgraph 3.4.1
opencv-python 4.1.1.26
openpyxl 3.0.5
paddlehub 1.6.0
paddlepaddle 2.0.0
pandas 0.23.4
pandocfilters 1.4.2
parl 1.3.2
parso 0.7.0
pathlib 1.0.1
pexpect 4.7.0
pickleshare 0.7.5
Pillow 7.1.2
pip 19.2.3
pluggy 0.13.1
pre-commit 1.21.0
prettytable 0.7.2
proglog 0.1.9
prometheus-client 0.5.0
prompt-toolkit 2.0.10
protobuf 3.12.2
psutil 5.7.2
ptyprocess 0.6.0
pyarrow 2.0.0
pyasn1 0.4.8
pyasn1-modules 0.2.7
pycodestyle 2.6.0
pycparser 2.19
pycryptodome 3.9.9
pydataset 0.2.0
pydocstyle 5.0.2
pyflakes 2.2.0
pyglet 1.4.5
Pygments 2.4.2
pylint 2.5.2
pynvml 8.0.4
pyparsing 2.4.2
pyrsistent 0.15.4
python-dateutil 2.8.0
python-jsonrpc-server 0.3.4
python-language-server 0.33.0
pytz 2019.3
PyYAML 5.1.2
pyzmq 18.0.1
rarfile 3.1
recordio 0.1.7
requests 2.22.0
requests-oauthlib 1.3.0
resampy 0.2.2
rope 0.17.0
rsa 4.0
scikit-learn 0.22.1
scipy 1.3.0
seaborn 0.10.0
Send2Trash 1.5.0
sentencepiece 0.1.85
setuptools 41.4.0
six 1.15.0
sklearn 0.0
snowballstemmer 2.0.0
SoundFile 0.10.3.post1
tabulate 0.8.3
tb-nightly 1.15.0a20190801
tb-paddle 0.3.6
tensorboard 2.1.0
tensorboardX 1.8
termcolor 1.1.0
terminado 0.8.2
testpath 0.4.2
toml 0.10.0
tornado 6.0.3
tqdm 4.36.1
traitlets 4.3.3
typed-ast 1.4.1
ujson 1.35
urllib3 1.25.6
virtualenv 16.7.9
visualdl 2.1.0
wcwidth 0.1.7
webencodings 0.5.1
Werkzeug 0.16.0
wheel 0.33.6
wrapt 1.12.1
xarray 0.16.2
xgboost 1.1.0
xlrd 1.2.0
yapf 0.26.0
zipp 0.6.0

持久化安装

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

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

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

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

使用git命令来同步代码 (暂时需要Paddle 1.4.1以上)
例如:

%cd work/

/home/aistudio/work

## 可以用gitee,速度会快一些
!git clone https://github.com/PaddlePaddle/Paddle.git  #Paddle官方模型

Cloning into ‘Paddle’…
remote: Enumerating objects: 30627, done.
remote: Counting objects: 100% (30627/30627), done.
remote: Compressing objects: 100% (11396/11396), done.
remote: Total 333257 (delta 24891), reused 23673 (delta 19199), pack-reused 302630
Receiving objects: 100% (333257/333257), 190.23 MiB | 23.88 MiB/s, done.
Resolving deltas: 100% (276137/276137), done.
Checking connectivity… done.
可以看到同步后work目录下出现一个Paddle文件夹

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

文件下载

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

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

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是可以随意颠倒顺序来执行的, 因此本平台自带"变量监控"和"运行历史". 方便用户了解当前代码运行状态.

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

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 %conda %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 %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pip %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 %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

#使用Magic命令来统计运行时长
import random
%%timeitprize = 0
for i in range(100):roll = random.randint(1, 6)if roll%2 == 0:prize += rollelse:prize -= 1

131 µs ± 1.66 µ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 npx = 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))
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/cbook/__init__.py:2349: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop workingif isinstance(obj, collections.Iterator):
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/cbook/__init__.py:2366: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop workingreturn list(data) if isinstance(data, collections.MappingView) else data

[<matplotlib.lines.Line2D at 0x7efe9e9c3a10>]
[<matplotlib.lines.Line2D at 0x7efe9c5443d0>]

这里需要注意的是, 当前技术架构局限, 一个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
# 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 /home/aistudio/work/SampleOfRun.py

paddlepaddle

!python /home/aistudio/work/SampleOfRun.py

paddlepaddle

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

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

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

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

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

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

%pycat /home/aistudio/work/SaveToPythonCode.py

更多magic命令:https://ipython.readthedocs.io/en/stable/interactive/magics.html

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

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

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

示例:

import paddle
?paddle.nn.Conv3D

关于变量监控

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

!pip install pydataset
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"from pydataset import dataquakes = data('quakes')
quakes.head()
quakes.tail()

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中不行, 会造成阻断%pdbdef reverse(x: int) -> int:inputnumber = x.__str__()reversedStr = inputnumber[::-1]strOriLen = len(reversedStr)result = list()flag = 1for i in range(0, strOriLen):if i == (strOriLen -1) and reversedStr[i] == '-' :flag = -1else:result.append(reversedStr[i])outputs = ''.join(result)outputInt = int(outputs)        outputInt = outputInt * flagif outputInt > pow(2,31)-1  or outputInt < -1 * pow(2,31):outputInt = 0return outputIntprint(reverse(134))

Automatic pdb calling has been turned OFF
431

PP飞桨 AI studio Notebook基础操作学习相关推荐

  1. 飞桨 AI Studio 课程学习 可以成为一名优秀的算法工程师

    如何成为一名算法工程师 从事 AI 行业需要学习哪些课程 最为高效的学习路线是什么样 很多对人工智能领域感兴趣的同学都会关注这些问题.不论是出于个人的专业兴趣或者是市场高薪资的吸引,算法工程师岗位已经 ...

  2. 飞桨AI Studio - 人工智能学习与实训社区

    开源项目 - 飞桨AI Studio - 人工智能学习与实训社区集开放数据.开源算法.免费算力三位一体,为开发者提供高效学习和开发环境https://aistudio.baidu.com/aistud ...

  3. 【机器学习】百度飞桨AI Studio平台项目:基于卷积神经网络分类方法的人脸颜值打分

    基于卷积神经网络分类方法的人脸颜值打分 说在前面 实验数据 解决过程 1.Precondition 2.Dataset Preparation 3.Network Configuration 4.Mo ...

  4. 基于OpenVINO与PP-Strucutre的文档智能分析 - 飞桨AI Studio

    ★★★ 本文源自AlStudio社区精品项目,[点击此处]查看更多精品内容 >>> 基于OpenVINO与PP-Strucutre的文档智能分析 本示例包含以下部分组成: 项目说明 ...

  5. 【paddle】PP飞桨

    PP飞桨AI Studio 项目:https://aistudio.baidu.com/aistudio/projectoverview/public 数据集:https://aistudio.bai ...

  6. 百度飞桨AI达人创造营 | Day01:创意是如何诞生的

    目录 一.将现有想法进行某种组合 二.创意来源于生活 三.多利用外部资源 四.个人思考 最近发现了一个比较有趣的学习网站(可能是吧)飞桨 AI Studio 百度人工智能学习与实训社区,官方介绍是:A ...

  7. 飞桨AI创造营2期-t3-数据处理

    飞桨AI创造营2期-数据处理 (Datawhale34期组队学习) 文章目录 飞桨AI创造营2期-数据处理 1知识点 2具体内容 2.1AI Studio Notebook命令 2.2Numpy基础 ...

  8. Ai Studio零基础学习心得

    内容提要:参见了百度AI Studio的零基础深度学习,让我之前对神经网络的理解加深了.哈哈哈,本来就是自学的,所以有很多盲点没有扫清.然后因为要百度要一个心得体会才能结业,所以处于期末考试的我还是出 ...

  9. 百度飞桨AI抠图+图片合成

    考虑到本科学校校庆即将到来,而又刚好学习了百度飞桨AI抠图以及图片合成的相关课程,因而想合成一张自己和本科学校的合照.(由于才疏学浅,略有翻车,请见谅) 使用工具:百度PaddleHub DeepLa ...

最新文章

  1. 【SAP技术】SAP不能修改一个已经分配给交货单的HU
  2. Lock和synchronized比较详解
  3. 用Flash MX 2004自制调色版和配色组件(一)
  4. firefox如何不让网站登录失效_Firefox Preview 4开放下载:引入登录管理、热门网站等功能...
  5. 年轻人不讲武德有多可怕?
  6. mysql跨节点join——federated引擎
  7. C# WinForm 中Label自动换行 解决方法
  8. 15年大厂经历!大佬总结:0基础如何学习Python?
  9. 作者:刘岩(1982-),男,泰康保险集团股份有限公司数据信息中心高级工程师、高级主管,中国计算机学会会员...
  10. 2018 年力扣高频算法面试题汇总-难题记录-鸡蛋掉落
  11. java程序设计编程题_JAVA编程题全集100题及答案
  12. 【转载】Unity3D导入FBX模型的相关属性介绍
  13. 第8章 资源管理调度框架YARN
  14. VC浏览器相关的学习(七)(BHO捕获鼠标键盘事件)
  15. 腾讯云全站加速有哪些功能?有哪些优势?适用于什么场景?
  16. php 微信公众号客服,微信公众平台开发 多客服
  17. 地图导航APP开发功能
  18. 计算机操作典型工作任务,典型工作任务描述表.doc
  19. 【python】print函数的用法示例与讲解
  20. Android 核心技术

热门文章

  1. BCJC之22:Ada创意注释(二)
  2. 华为认证的含金量和报考流程
  3. zcy算法入门笔记002-位图
  4. 14 实例:自动轨迹绘制
  5. day14 方法原则 方法命名 方法组成 方法重载
  6. 3月30日—4月3日四年级课程表
  7. 用PhotoShop制作.pat格式的图片
  8. 模拟器v3.1.2官方安卓版
  9. OTFS代码学习记录Ⅰ
  10. Linux rpm命令用法