AI Studio-Notebook基础使用教程(一)
(本文章主要参考了AI Studio官方解释说明)
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。
在AI Studio平台使用时,接触到的Notebook作为主要编辑器。因此在AI Studio上操作时,notebook的熟练使用尤为关键。
下面按顺序介绍Notebook的使用与操作
项目启停
当进入自己项目的详情页面时, 用户可以选择"运行"项目, 也就是准备项目环境.
同样的, 当不想继续时, 可以此页面点击"停止"以终止项目.
执行和调试
Notebook的使用方法和传统IDE操作略显差异
AI Studio中的notebook一旦启动执行,就会自动进入调试状态,断点切入需要依赖Python自带Debugger: PDB.
传统的IDE编码与调试状态分开,断点的切入可直接操作
调试代码
Notebook同时自带一个调试器, 叫The Python Debugger (pdb),我们来看看它是如何工作的.
# 对, 它也是依赖Magic命令启动的.
多文件代码编辑
AI Studio中的Notebook支持多文件编辑, 支持.py, .json, .txt, .log等文件格式的在线编辑, 同时支持部分图片类型文件的在线预览.
上传与导出Notebook
可以用自己的ipynb文件取代当前默认的Notebook(前提是格式合法),也可将当前Notebook导出为多种类型的文件。
Notebook快捷键
AI Studio平台的Notebook快捷键于常规的Notebook大体相同。见下图
字号调节
字体太小看不清楚, 可在左侧设置区找到相关设置进行调节
Notebook中使用Shell命令
AI Studio中的notebook支持执行部分Shell命令。通过在Shell命令前添加! (感叹号), 就可以执行。诸如 !pip install这样的命令. 但!apt-get这种可能引发用户进一步操作的命令是不被支持的.
# 查看当前挂载的数据集目录
持久化安装
如果需要进行持久化安装, 需要使用持久化路径, 如下方代码示例:
!
同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可:
import
使用git命令来同步代码 (暂时需要Paddle 1.4.1以上)
%
文件下载
文件下载分为"文件夹打包下载"和"单一文件下载", 两者操作按钮在同一位置,如下图:
文件夹下载可能耗时比较久, 每次只能下载一个文件夹内容, 也可能需要较长时间等待.
Python代码执行与调试
Notebook执行Python代码的原理和传统IDE略有不同.
- 传统IDE, 当点击Run按钮时, 编译器/解释器开始构建一个进程. 用户通过单步执行/设置断点进行代码调试和变量监控. 当代码出错, 或用户点击Stop按钮时, 进程被杀死, 资源回收.
而Notebook, 一旦启动, 就是开始创建一个"进程"(kernel). 每一个Cell, 都是一个天然的断点. 当代码出错, 或用户点击Stop按钮时, "进程"通常也不会被杀死.
因此如果代码陷入死循环等情况, 需要用户手动关闭并重启该"进程".
- 此外, Notebook的Cell是可以随意颠倒顺序来执行的. 这点和传统IDE有很大不同.
- 作为前端的Notebook, 与后端的进程(kernel), 建立有一个Session. 未来本平台将支持terminal功能. 也就可以同时支持多个Session来控制kernel.
变量监控
变量监控是调试需要使用的一种重要方法。
因为Notebook的Cell是可以随意颠倒顺序来执行的, 因此AI Studio平台自带了"变量监控"和"运行历史". 方便用户了解当前代码运行状态.
通过重启环境并清空输出, 可以消除已生成的变量监控.
变量监控的另一种方法
可以通过修改内核选项ast_note_interactivity,使得Jupyter对独占一行的所有变量或者语句都自动显示,这样就可以马上看到多个语句的运行结果。
!
Magic命令
Magic命令是Notebook的高级用法了. 可以运行一些特殊的指令. Magic 命令的前面带有一个或两个百分号(% 或 %%),分别代表 行 Magic 命令和单元格 Magic 命令。行 Magic 命令仅应用于编写 Magic 命令时所在的行,而单元格 Magic 命令应用于整个单元格。
关于快速查看某个对象/方法/接口的用法
在要查询的对象前输入 ? 或 ?? 并执行即可. 单问号是普通信息, 双问号是详细信息.
前提: 该对象方法已经被正确导入(import)
import
希望了解更多的同学可以参考以下网址:
[百度AI Stuidio官网] https://aistudio.baidu.com
[百度飞桨官网] https://www.paddlepaddle.org.cn/
[GitHub公开项目地址] https://github.com/PaddlePaddle/Paddle
[GItTee公开项目地址] https://gitee.com/paddlepaddle/Paddle
同时欢迎加入人工智能学习圈
人工智能学习圈 - 知乎www.zhihu.com