Skip to main content

機械学習のための GitHub Codespaces の概要

GitHub Codespaces とそのすぐに使えるツールを使用して、機械学習プロジェクトに取り組む方法について学習します。

はじめに

このガイドでは、GitHub Codespaces を使用した機械学習について説明します。 単純な画像分類器を構築し、GitHub Codespaces にプレインストールされているツールの一部について学習して、JupyterLab で codespace を開く方法を確認します。

単純な画像分類器を構築する

Jupyter Notebook を使用して、単純な画像分類器を構築します。

Jupyter Notebook は、順次実行できるセルのセットです。 使用するノートブックには、PyTorch を使って画像分類器を構築する多数のセルが含まれています。 各セルは、データセットのダウンロード、ニューラル ネットワークの設定、モデルのトレーニング、そのモデルのテストなど、そのプロセスの異なるフェーズです。

すべてのセルを順番に実行して、画像分類器を構築するすべてのフェーズを実行します。 この操作を行うと、Jupyter によって出力がノートブックに保存され、結果を確認できるようになります。

codespace を作成する

  1. github/codespaces-jupyter テンプレート リポジトリに移動します。

  2. [このテンプレートを使用する] をクリックし、 [codespace で開く] を選びます。

    [このテンプレートを使用] ボタンと、ドロップダウン メニューが展開されて [codespace で開く] が表示されている状態のスクリーンショット。

このテンプレートの codespace は、Web ベース バージョンの Visual Studio Code で開きます。

画像分類器ノートブックを開く

GitHub Codespaces によって使用される既定のコンテナー イメージには、codespace にプレインストールされている一連の機械学習ライブラリが含まれています。 たとえば、Numpy、pandas、SciPy、Matplotlib、seaborn、scikit-learn、Keras、PyTorch、Requests、Plotly などです。 既定のイメージについて詳しくは、「開発コンテナーの概要」と devcontainers/images リポジトリをご覧ください。

  1. VS Code エディターで、表示されている [作業の開始] タブを閉じます。
  2. notebooks/image-classifier.ipynb ノートブック ファイルを開きます。

画像分類器を構築する

画像分類器ノートブックには、データセットのダウンロード、ニューラル ネットワークのトレーニング、そのパフォーマンスの評価に必要なすべてのコードが含まれています。

  1. [すべて実行] をクリックして、ノートブックのセルをすべて実行します。

    "image-classifier.ipynb" ファイルのエディター タブの上部のスクリーンショット。 "すべて実行" というラベルの付いたボタンの上にカーソルが置かれています。

  2. カーネル ソースを選ぶように求められた場合、 [Python 環境] を選び、推奨された場所の Python バージョンを選びます。

    [Python 環境の選択] ドロップダウンのスクリーンショット。 Python バージョンの一覧の最初の選択肢には "推奨" というラベルが付いています。

  3. 下にスクロールして、各セルの出力を表示します。

    エディターのセルのスクリーンショット。ヘッダーは "手順 3: ネットワークをトレーニングし、モデルを保存する" です。

JupyterLab で codespace を開く

codespace は github.com/codespaces の "Your codespaces" ページの JupyterLab で開くことができます。あるいは、GitHub CLI を使用して開くことができます。 詳しくは、「既存の codespace を開く」を参照してください。

JupyterLab アプリケーションは、開いている codespace にインストールされている必要があります。 既定の開発コンテナー イメージには JupyterLab が含まれているため、既定のイメージから作成された codespace には常に JupyterLab がインストールされます。 既定のイメージの詳細については、「開発コンテナーの概要」と devcontainers/images リポジトリを参照してください。 開発コンテナー構成で既定のイメージを使用していない場合は、devcontainer.json ファイルに ghcr.io/devcontainers/features/python 機能を追加して JupyterLab をインストールできます。 オプション "installJupyterlab": trueを含める必要があります。 詳細については、devcontainers/features リポジトリの python 機能の README を参照してください。

codespace 用に NVIDIA CUDA を構成する

: このセクションは、GPU を使っているマシン上で codespace を作成できるお客様のみが該当します。 GPU を使っているマシンの種類を選択する機能は、試用期間中に一部のお客様に提供されました。 このオプションは一般提供されていません。

一部のソフトウェアでは、codespace の GPU を使用するために NVIDIA CUDA をインストールする必要があります。 その場合は、devcontainer.json ファイルを使用して独自のカスタム構成を作成し、CUDA をインストールする必要があることを指定できます。 カスタム構成の作成について詳しくは、「開発コンテナーの概要」をご覧ください。

nvidia-cuda 機能を追加すると実行されるスクリプトのすべての詳細については、devcontainers/features リポジトリをご確認ください。

  1. codespace 内で、エディターで .devcontainer/devcontainer.json ファイルを開きます。

  2. 次の内容を含む最上位の features オブジェクトを追加します。

    JSON
      "features": {
        "ghcr.io/devcontainers/features/nvidia-cuda:1": {
          "installCudnn": true
        }
      }
    

    features オブジェクトについて詳しくは、「開発コンテナーの仕様」を参照してください。

    このチュートリアル用に作成した画像分類器リポジトリの devcontainer.json ファイルを使用している場合、devcontainer.json ファイルは次のようになります。

    {
      "customizations": {
        "vscode": {
          "extensions": [
            "ms-python.python",
            "ms-toolsai.jupyter"
          ]
        }
      },
      "features": {
        "ghcr.io/devcontainers/features/nvidia-cuda:1": {
          "installCudnn": true
        }
      }
    }
    
  3. 変更を保存します。

  4. VS Code Command Palette にアクセス (Shift+Command+P / Ctrl+Shift+P) し、「リビルド」と入力します。 [Codespaces: コンテナーのリビルド] をクリックします。

    テキスト ボックスに「rebuild container」と入力され、ドロップダウンで [Codespace: コンテナーのリビルド] オプションが強調されている、コマンド パレットのスクリーンショット。

    ヒント: キャッシュをクリアし、新しいイメージを使用してコンテナーを再構築するために、完全なリビルドを実行することが必要になる場合があります。 詳しくは、「codespace でのコンテナーのリビルド」を参照してください。

    codespace コンテナーが再構築されます。 これには数分かかります。 再構築が完了すると、自動的に codespace が再び開きます。
  5. 変更をリポジトリに発行し、CUDA が今後このリポジトリから作成する新しい codespace にインストールされるようにします。 詳しくは、「テンプレートから codespace を作成する」を参照してください。