Jupyter Lab 的十個有用技巧
JupyterLab是 Jupyter Notebook「新」界面。它包含了jupyter notebook的所有功能,并升級增加了很多功能。它最大的更新是模塊化的界面,可以在同一個窗口以標(biāo)簽的形式同時打開好幾個文檔,同時插件管理非常強(qiáng)大,使用起來要比jupyter notebook高大尚許多。
1、拼寫檢查
拼寫檢查可以讓我們的文檔保持更高的質(zhì)量,默認(rèn)情況下,拼錯的單詞會以紅色背景突出顯示,但是這里我將其設(shè)置為下劃線。
使用這個功能只要安裝以下的插件:
2、代碼格式化
這里需要安裝幾個包,一個是提供格式化功能,另外一個是我們的jupyterlab插件
通過Jupyter Lab Code Formatter擴(kuò)展可以獲得很多的格式化功能
安裝完成后,頂部會出現(xiàn)一個奇怪但看起來很酷的圖標(biāo)。如果您不想使用該按鈕,您可以將擴(kuò)展配置為保存時自動格式化(在 Advanced Settings Editor 設(shè)置)。
3、多行選擇
這個功能與jupyter notebook一樣,點(diǎn)擊時按住Ctrl鍵可以多選。只能在單個單元格內(nèi)進(jìn)行多選。
4、添加虛擬環(huán)境
使用以下命令將虛擬環(huán)境作為內(nèi)核添加到Jupyter Lab,這樣就可以作為一個選項(xiàng)出現(xiàn)在Launcher或內(nèi)核列表的右上角:
注意:以上代碼需要在你需要添加的虛擬環(huán)境使用,而不是jupyter lab的環(huán)境。
5、像運(yùn)行腳本一樣運(yùn)行notebook
Jupyter notebook用于探索和互動輸出。但是使用jupyter run命令,可以像Python腳本一樣順序執(zhí)行每個筆記本單元格。
該命令會以JSON的形式返回每個單元格的輸出,所以如果有大量文本輸出可能會卡頓。我們可以將不同的超參數(shù)保存到單個筆記本中然后運(yùn)行,這樣可以保存運(yùn)行記錄。
6、分割編輯器窗口
Jupyter Lab的窗口以標(biāo)簽的形式展示,我們一次可以打開好幾個編輯窗口,并且可以拖動窗口,將編輯器窗口分割,演示如下:
7、隨時查看文檔
有三種方法可以直接從編輯器中查找?guī)缀跞魏魏瘮?shù)或魔法命令的文檔。
第一個是使用Shift + Tab鍵盤快捷鍵(默認(rèn)),它會顯示一個彈出窗口,其中包含光標(biāo)所在的函數(shù)或類的文檔:
如果不喜歡點(diǎn)擊其他地方后彈出窗口消失,還可以使用上下文幫助,它可以通過幫助菜單或Ctrl + I鍵盤快捷鍵訪問。上下文幫助顯示游標(biāo)指向的函數(shù)或類的實(shí)時文檔。
最后,一種方法可以簡單地在函數(shù)或類名的末尾添加一個問號(不帶括號):
8、終端命令和Python代碼混合開發(fā)
這個功能看起來有點(diǎn)古怪,但它非常有用。使用感嘆號(!),可以在代碼單元格中運(yùn)行任何終端命令。
還可以將這些命令的輸出存儲在Python變量中。例如使用!pwd的輸出將當(dāng)前工作目錄存儲在path變量中:
這里有一個更實(shí)際的例子。假設(shè)有一個數(shù)據(jù)文件夾,其中包含用于模型訓(xùn)練的圖像。所有圖像都根據(jù)它們的類被分類到目錄中。
問題是有太多的圖像類別,我們無法手動計數(shù)。需要使用一個快速的方法來計算data/raw/train內(nèi)部的目錄數(shù)量,并將其輸出存儲在number_of_classes中:
一句shell命令就能解決問題,這樣就不用我們寫python的目錄遍歷代碼了
9、通知執(zhí)行
即使你不是谷歌Colab的用戶,你也一定會喜歡它的單元格執(zhí)行通知。使用winsound內(nèi)置Python庫,可以在Jupyter Lab上模仿該功能:
10、自動重載修改后的Python腳本
將腳本與筆記本混合使用是非常不好的,但是有時候我們的確需要這樣做,如果我們更新了導(dǎo)入的腳本,除非重新啟動內(nèi)核,否則Jupyter將不會自動檢測到更改,這會產(chǎn)生很多問題。所以我們可以使用autoreload 命令來避免這個問題:
上述代碼將每秒鐘檢測并刷新一次內(nèi)核。它不僅會檢測腳本更改,還會檢測對所有文件的更改。
對于python腳本,我們還可以使用pycat 命令來以語法高亮的形式顯示Python腳本的內(nèi)容:
對于其他文件格式,也可以使用cat命令,這是linux的標(biāo)準(zhǔn)命令
總結(jié)
本文介紹了幾個常用且好用的jupyter技巧,如果你還想了解個更多的魔法命令,可以運(yùn)行l(wèi)smagic。它將列出所有內(nèi)聯(lián)和單元格魔術(shù)命令。