Skip to main content

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

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

はじめに

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

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

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

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

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

codespace を作成する

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

  2. ファイル リストの上にある [このテンプレートを使用する] をクリックし、 [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. [すべて実行] をクリックして、ノートブックのセルをすべて実行します。

    [すべて実行] ボタンのスクリーンショット。

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

    エディターの手順 3 のスクリーンショット

codespace 用に NVIDIA CUDA を構成する

一部のソフトウェアでは、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 (Mac) / Ctrl + Shift + P (Windows/Linux))、「リビルド」と入力します。 [Codespaces: コンテナーのリビルド] を選択します。

    コマンド パレットのコンテナーのリビルド コマンドのスクリーンショット

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

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

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 を参照してください。