在VS Code中編寫Jupyter Notebook

  • 2019 年 12 月 2 日
  • 筆記

對於在線學習過機器學習有關課程的朋友來說,Jupyter Notebook應該不陌生。Jupyter Notebook提供了基於Web的交互式機器學習環境,用戶無需安裝任何軟件,只需可以上網的瀏覽器,就可以體驗機器學習。Jupyter Notebook在線環境可以讓用戶編寫Notebook,修改代碼,並實時執行,查看結果。不過基於Web的編輯器,並沒有提供過多的代碼編寫輔助,對於習慣使用IDE編寫代碼的開發人員,裸寫機器學習代碼,的確不太方便。

現在有個好消息,Visual Studio Code提供了對Jupyter Notebook的本機支持。藉助於強大的插件系統,VS Code日益成為機器學習工程師喜愛的編程工具。

下面介紹如何在VS Code中編寫和使用Jupyter Notebook。

在VS Code中使用Jupyter Notebook

使用VS Code創建新的Notebook:組合鍵CTRL + SHIFT + P,然後運行Python: Create Blank New Jupyter Notebook命令。

在VS Code中打開現有的Notebook:選擇菜單:File | Open File…,打開Jypyter Notebook文件(.ipynb後綴)。

點擊單元格左側的三角按鈕,可以執行單元格中的代碼。

新建或打開Jupyter筆記本文件時,默認情況下,VS Code會自動在本地啟動Jupyter服務器。請確保當前的Python環境已經安裝了jupyter,可以通過:

conda install jupyter # 或 pip install jupyter

命令安裝。如果說你想使用遠程Jupyter服務器,抑或你已經在本地啟動了Jupyter服務器,你可以自行指定。組合鍵CTRL + SHIFT + P,然後輸入Python: Specify Jupyter Server URI:

Jupyter中編寫Python代碼,和在VS Code中編寫普通的Python代碼一樣,其方便之處就在於可以執行一小塊代碼,並立即看到結果。比如我使用matplotlib繪圖,圖形可以顯示在VS Code編輯器中:

非常遺憾的是,VS Code還不支持Jupyter Notebook的調試。要調試Jupyter Notebook,需要首先將其導出為Python文件。導出為Python文件後,即可使用VS Code調試器單步執行代碼、設置斷點、檢查狀態並分析問題。關於VS Code調試Python代碼,以後有機會再寫。

通過插件提升Jupyter Notebook體驗

寫到這兒,似乎在VS Code中和在Web環境下編寫Jupyter Notebook沒什麼差別。別慌,VS Code的強大就在於其插件。下面介紹一個智能代碼補齊插件:IntelliCode。

在插件庫中搜索IntelliCode,請認準微軟出品。安裝插件之後,在編寫代碼時,IntelliSense會在代碼單元內為您提供智能代碼補齊建議,這裡提供的建議是AI基於當前代碼上下文提供的自動完成建議,和以前的IntelliSense還不太一樣,並不僅僅是包名或者函數名或參數這樣的建議。當然,現在的AI還不是特別靠譜,有時提供的一些建議有些智障,期待後續會持續增強吧。

使用VS Code的另一個好處是,您可以通過單擊筆記本工具欄中的」variable」按鈕來瀏覽變量的當前狀態和值,可以實時跟蹤變量的值。這個功能並不需要額外安裝插件。

VS Code包含着一個巨大的寶庫:插件,裏面有各種各樣的寶貝,等着我們去發現。等我有更多的心得,再和大家分享。