Visual Studio CodeからJupyter Notebookを使い仮想環境上のPyTorchコードを実行する

Pythonの勉強をしていると、Jupyter Notebookを使う手順を多くお見受けします。Jupyter Notebookは、コードの断片を実行したり、printを書かなくても表示したい変数を参照できる点などが非常に便利と感じます。その一方で、Pythonコード(.py)のまとまりを実行してデバッグするのであればVisual Studio CodeのPython拡張機能の方が私的には便利です。

そこで、両方を使えるようにVSCodeからJupyterを呼び出す方法を調べてみました。またPythonですから`conda activate`を含めた仮想環境の使い方も併せてまとめておきます。今回はサンプルとして　PyTorchを含む仮想環境にアクセスしました。手順はMacBook Pro上で実行したものです。

#### 事前準備

以下記事を進めていることを前提に書いています。

- Homebrewをインストールする
- Anacondaをインストールする
- Miniforgeをインストトールする

https://qiita.com/xtrizeShino/items/56e3c1e027107debe331

Visual Stutio Codeには下記の拡張機能をインストールしています。

- Python
  - Pythonのコード拡張
- Japanese Language Pack
  - 日本語表記の手順を紹介します
- Remote Development
  - 今回は特に出番ありませんがリモートの仮想環境を使うなら必要です

## 作業ディレクトリを作成して仮想環境を整える

まず作業ディレクトリを作成し、仮想環境も作成します。

```bash
$ cd ~
$ mkdir jupyterbox
# jupyterboxという作業ディレクトリを作成する
$ cd ./jupyterbox
# 仮想環境を作る
$ conda create --prefix ./env python=3.8
# 仮想環境に入ってPyTorchをインストールする
$ conda activate ./env
(env) $ conda install pytorch::pytorch torchvision torchaudio -c pytorch
```

一旦この状態でPyTorchが使えるか確認しておきましょう。

```bash
(env) $ python
>>> import torch
# 特にエラーが出なければOK
```

# Visual Studio Code上での操作

それでは、Visual Studio Codeを触っていきましょう。Visual Studio Codeのインストールが未だの方は、下記手順を参照してください。

https://qiita.com/xtrizeShino/items/096fb800891c4525a576#visual-studio-code%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

## 拡張機能Jupyterをインストールする

Visual Studio Codeの拡張機能を開き、Jupyterをインストールしましょう。

![スクリーンショット 2024-11-16 3.45.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919880/e924c3df-6a06-f4d5-4a43-f68f79a04019.png)

## 作業ディレクトリを開き、仮想環境にJupyterをインストールする

ファイルタブから「フォルダを開く」を選択して、前手順で作成した作業ディレクトリを開きます。作業ディレクトリを開いた後は、ターミナルにアクセスし、仮想環境に入り、Jupyterをインストールします。

![スクリーンショット 2024-11-16 3.47.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919880/1c55dc39-8f62-ed3b-fc2f-cb0c62e04073.png)

#### 仮想環境へJupyterとipykernelをインストールし、有効化する

Jupyterを使う前準備します。

```bash
(base) $ ls
env
# 仮想環境にログインします
(base) $ conda activate ./env
# Jupyter拡張をインストールします
(env) $ pip install jupyter
# Jupyter Notebook 用の Python カーネルをインストールします
(env) $ pip install ipykernel
# ipykernelを有効化します
(env) $ python -m ipykernel install --user
```

## Jupyterを使ってみましょう

#### 作業用ファイルを作成する

Visual Studio Codeの「新しいファイル」で`test.ipynb`をカレントディレクトリ内に作成します。`.ipynb`はJupyter Notebook用の作業ファイルです。

![スクリーンショット 2024-11-16 4.00.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919880/a29112ff-2e4a-369c-042d-865cd8ea26ed.png)

#### 仮想環境を有効化する

続いて`test.ipynb`を実行する仮想環境を選択します。右上の「カーネルの選択」をクリックし「Python環境」から、前手順で作成した仮想環境フォルダ「env」を選択してください（conda createした仮想環境名と合わせてください）。

![スクリーンショット 2024-11-16 4.01.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919880/11be27ec-294d-82aa-efab-65b7d93414f1.png)

![スクリーンショット 2024-11-16 4.01.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919880/f59e5654-107e-6dcc-6b08-bb0113f216ca.png)

#### Pythonコードを実行してみましょう！

これで準備が整いました。最後に左上の「＋コード」をクリックし、実行したいPythonコードを実行し、コード左にある再生ボタンをクリックすると、コードが実行されます。今回はPyTorchにバンドルされているニューラルネットワークの一覧を表示する以下のコードを実行してみました。 **正しく仮想環境が選択できていればPyTorchにアクセスできるはずです。**

```python
import torch
from torchvision import models
dir(models)
```

![スクリーンショット 2024-11-16 4.08.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919880/8420130a-0149-ed72-b60e-275e2538d681.png)

これで、Visual Studio CodeとJupyter Notebookを連携させることができました。

それでは良いPythonライフを！