Jupyter Notebook的使用技巧,充分发挥它的强大之处!
本文最后更新于:2022年8月30日 晚上
Jupyter Notebook的使用技巧,充分发挥它的强大之处!
Notebook与命令行
数据的交互
可能大家刚入门就知道notebook里想要执行命令就是在命令前加上感叹号!
,但是你知道notebook里的变量既可以接受命令的输出,又可以作为命令的输入吗?
在notebook中用变量赋值就能获取命令的输出,而命令的输出是被保存在一个比较像list的数据结构(假如需要了解更多可以查阅IPython文档的IPython.utils.text.SList
)。而在使用命令的时候,用一个大括号把变量括起来就能传值了。
1 |
|
持续生效的命令
假如想改变notebook的工作目录,使用!cd
是不起作用的,因为!
本质是在一个subshell中执行,要持续生效,使用百分号%
。比如cd
命令和load_ext
命令。
1 |
|
多媒体输出!IPython.display!
在IPython.display
中定义了许多展示用的类,还有在jupyter中专用的display函数,无论是音频、视频还是动画,用display()
就能显示在notebook里。
详情见Module: display — IPython 8.4.0 documentation
模块 | 作用 |
---|---|
Audio | 展示音频,可以是numpy数组、文件和URL |
FileLink FileLinks |
在notebook中提供一个本地文件的下载链接(在Kaggle里挺实用的) |
GeoJSON | 显示地图(虽然我没在colab里尝试成功过) |
Image | 显示图片~应该是最常用了的吧 |
Video VimeoVideo YouTubeVideo |
显示视频,对Vimeo和YouTube有特殊照顾 |
统计代码执行速度
Built-in magic commands — IPython 8.4.0 documentation
%timeit
魔法命令可以统计你的python代码的执行速度,一个百分号是单行模式,两个百分号是一个cell的多行模式。在多行模式下,和%%
同一行的代码属于setup
,不会统计时间。
执行python文件
当然可以!python main.py
,然而也可以用魔法命令:%run main
,使用魔法命令可以把变量放到notebook里来。
Notebook中使用Tensorboard
在一台机器上训练时想要看tensorboard,一般是开启另一个terminal运行,而仅仅使用一个notebook也可以使用tensorboard(比如在Colab里面)!
而且,可以在训练之前就开启tensorboard,这个cell是不会卡住的,那样训练过程中就能动态查看了。
1 |
|
更多信息可以查看Using TensorBoard in Notebooks | TensorFlow
Colab中强大的控件
假如使用Colab,那么还可以使用里面的有趣的控件!一行代码导入:
1 |
|
详细文档见Widgets.ipynb - Colaboratory (google.com)
Colab的额外控件支持
-
表格(grid)
1
2
3grid = widgets.Grid(2, 2) # 初始化表格
with grid.output_to(1, 1): # 使用上下文管理器在表格中填写数据
print("Bye grid")看上去长这样,但是表格也可以显示图片等多媒体!
-
标签页(Tabbar)
可以点击切换tab,不用担心图片太多输出一堆啦
1
2
3
4
5
6
7
8
9
10tb = widgets.TabBar(['a', 'b'], location='start')
with tb.output_to('a'): # 同样使用上下文管理器来填充数据
pylab.figure(figsize=(3, 3))
pylab.plot([1, 2, 3])
# Note you can access tab by its name (if they are unique), or
# by its index.
with tb.output_to(1):
pylab.figure(figsize=(3, 3))
pylab.plot([3, 2, 3])
pylab.show()
Colab中的表单交互
Forms - Colaboratory (google.com)
在colab中可以通过表单来填写一些东西而不是修改代码:
如图,只要在右边修改了值,左边的代码就会自动更新,这样就能构建一个更好的交互,而且,双击右边可以把代码都隐藏了:
那么这个是怎么弄出来的呢,选中一个代码cell,然后按照下图就能添加表单字段,很方便。
Colab数据交互
虽然在浏览器左边的“文件”就能上传下载数据,但是colab还提供了其他的方式:
-
files
模块1
2
3
4
5from google.colab import files
# 上传(会提供一个GUI)
uploaded = files.upload()
# 下载(准备好后会自动调用浏览器下载)
files.download('best.pt') -
Google Drive
可以挂载谷歌网盘,没啥好说的,跟着GUI走
1
2from google.colab import drive
drive.mount('/content/drive') -
从kaggle上下载
假如恰好你的数据在kaggle上,还可以使用kaggle的api下载
1
2# 先安装kaggle包
!pip install kaggle然后上kaggle的account里创建API Token,会得到一个
kaggle.json
文件,把这个文件传到colab上然后在colab上更改配置文件目录到你
kaggle.json
的目录:1
2import os
os.environ['KAGGLE_CONFIG_DIR'] = 'kaggle.json存在的目录'然后找到你想要的数据集,复制API command就可以下载了
1
!kaggle datasets download -d ifigotin/imagenetmini-1000
一些辅助资源
Filesamples:当在colab或者kaggle上想获得一些文件例子,又不方便上传下载时,可以用命令从这个网站上下载。比如!curl -O https://filesamples.com/samples/video/mp4/sample_3840x2160.mp4
。
参考文献:
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!