インスタンスからJupyter Labを使ってみよう
Contents
はじめに
以前の記事でインスタンス内でJupyter Notebookサーバを立ち上げてローカルPC(インスタンスアクセスに使用しているPC)のブラウザからnotebookにアクセスする方法について解説しました。今回はJupyter Notebookの後継にあたるJupyterLabを使用してみましょう!
インスタンス内に正式に導入しているため、サーバの立ち上げとNotebookへのアクセスは前回の記事で紹介した方法に比べ更に簡素になっています。この機にJupyter、はじめてみませんか?
前提
この記事は下記の条件を満たした方を対象としております。
- HGAでインスタンスを作成済であること(インスタンスタイプは何でも大丈夫です)
- インスタンスにログイン可能であること(方法, VSCodeでの接続も推奨します)
JupyterLab用notebookサーバの立ち上げ
ローカルPCのブラウザからJupyterLabのnotebookにアクセスするため、以下のコマンドでnotebookサーバを立ち上げます:
jupyter lab

ローカルPCからnotebookへアクセス
サーバを立ち上げたら、ローカルPCのブラウザのURL入力欄に
http://localhost:8888
を入力すれば、JupyterLabのnotebook画面にアクセスできます(下図)。

接続完了です!次節では実際に少し使用してみましょう。
JupyterLabを使ってみる
pythonの実行確認
いくつか動作確認をしてみましょう!まずはPythonのコードが正常に動くか確認します。
JupyterLabのホーム画面上、以下の画像の赤く囲った部分をクリックしてPython用のnotebookを作成します。

notebookが立ち上がったら、下図のようにセル内に
print("HGA使ってみください~")
と入力してCtrl + Enterを押下します。するとセルの下の方にprint文の実行結果が出ます(下図)。

公式ブログらしくサービスの宣伝もしていてバッチリですね!
また、matplotlibでグラフを描くこともできます:
%matplotlib inline # Jupyterでグラフを描画するにはこの一文が必要です
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
上記のコードをセル内で実行すると下図のようにグラフが表示されます。ここで、jupyterでmathplotlibのグラフ描画機能を利用するには、コード内に%matplotlib inlineという文を挿入するようにしてください。

セルのmarkdown有効化
下図の赤く囲った箇所から、セルの種類を切り替えることができます。pythonの実行セルからmarkdown用のセルに切り替えてみましょう。

図のように実際にmarkdown記法が使えることを確認します(公式ブログらしく更に念を入れて宣伝してみました!バッチリですね! )。
カーネルを切り替えてpytorchを使ってみる
HGAインスタンスでPyTorchやTensorFlowなどのライブラリを利用される場合、conda環境を切り替えてライブラリドリブンにする必要があります(参考)。これと同じように、JupyterLabでPyTorchやTensorFlowを使いたい場合は、それに応じてカーネルというものを切り替える必要があります。カーネルとはJupyter内の実行環境のようなものだという認識で大丈夫だと思います(間違ってたらごめんなさいね)。
カーネルの切り替えにはいくつかの方法がありますが、ここでは既に開いたnotebookに対してカーネルを切り替える方法を紹介します。下図のようにnotebook上の右上、「Environment ~」となっているところをクリックするとダイアログが出ます。ダイアログ上のプルダウンを展開して使用したい環境に切り替えて「Select」ボタンを押下すればカーネル切り替え完了です。

今回は例としてPyTorchが使える環境に切り替えます。下図のカーネル選択メニューからconda_torch16_py36というカーネルを選択し、「Select」ボタンを押下します。

実際に切り替わったか確認するため、セルに以下のコードを入力します。
import torch
print(torch.cuda.is_available())
入力したらCtrl + Enterを押下して実行します。

実行時、セルの直下に「True」と出ればPyTorch環境への切り替え完了です。
amd系のインスタンスの場合、importに時間がかかるため多少表示に時間がかかります。importが完了してしまえば後は早いです 。Nvidia GPUを使ったインスタンス(nvd~)であればimportも一瞬です(CUDAなので)。
Jupyter Labを使ってみる【ちょっと発展編】
前節までで一通りJupyterLabの動作確認は完了しました。ここからは少し発展的な内容にトライしてみましょう。まず、インスタンスにJupyterLabのターミナルからgitをインストールします。そして、以前の記事で作ったPyTorchを使ったディープラーニングの学習用コードをnotebook内で実行してみましょう。
ターミナルを使ってみる
まずはJupyterLab上でターミナルを使用する方法を説明します。下図のように左上の「File」タブから「New」→「Terminal」とわたることでターミナルを開くことができます。

すると下図のような、ターミナル画面が立ち上がります。

なお、このターミナルはインスタンスと連動しているので、この画面上から実行したコマンドはインスタンスにも反映されます。例えば、この画面からgitをインストールしたら、インスタンスにもgitがインストールされます。 実際に以下の2コマンドを実行してみましょう:
sudo apt update
sudo apt install -y git
gitをインストールすることができたら、 以前の記事で作ったPyTorchを使ったディープラーニングの学習用コードをgit cloneします:
git clone https://github.com/highreso/Lrning_DeepLearning_in3days.git
クローン完了したら「Lrning_DeepLearning_in3days」というディレクトリが存在していることを確認します(下図, 赤く囲った箇所)。

なお、弊社公式のgit hubはこちらになります。
.pyファイルをnotebook上で実行する
クローンしたコードをnotebook内で実行してみます。ここで、注意していただきたいのは、クローンしたファイルは.pyというPythonファイルである一方、notebookは.ipynbというPythonをJupyter内で実行したりJupyterLabの設定情報を記載するための統合フォーマットとなっております。ファイルの形式が違うため、notebook内で.pyファイルをそのまま実行することは本来不可能です。
しかし、Jupyter Labではnotebook内で.pyファイルをまるで魔法のように簡単に実行できるようになっています。具体的にはマジックコマンドというコマンドをnotebook内で使用して.pyファイルを実行します。
まず、クローンしたディレクトリが存在することを確認したら、そのディレクトリに入って新しくnotebookを開きましょう(下図)。この時、notebookのカーネルには「conda_torch16_py36」を選択します。

notebookが開けたら以下のコマンドを入力することで、train.pyを実行することができます:
%run train.py

これで、train.pyの内容が実行され、学習データのダウンロード状況や学習の状況が出力されます。
標準的なPythonファイルをJupyterで実行するのは、最初は戸惑うかもしれませんが、ターミナルでPythonファイル実行する際の頭のpython3の箇所をnotebook上では%runでリプレースするという風にとらえれば抵抗感もなくなるのではないでしょうか。
Notebookサーバのシャットダウン
Notebook使用終了時にはNotebook Serverをシャットダウンします。サーバを立ち上げたターミナル上で「Ctrl + C」を押すと「Shutdown this notebook serve (y/[n])?」と問われるので、「y」を入力しEnterキーを押すことでNotebook serverをシャットダウンさせることができます。

(おまけ)テーマを変えてみよう
JupyterLabのテーマ色を白から黒に変えてみましょう。画面上の「Setting」→「JupyterLab Theme」→「JupyterLab Dark」をクリックすれば背景テーマを変えることができます(下図)。

なんかかっこよくなっていませんか?ちょうど中学2年時の筆者が好きそうな色合いになっています。
[HGAoffcial]
[dot]
[/dot]