Google Colaboratory について

【概要】Google Colaboratoryは、セットアップ不要で無料利用可能なオンラインのJupyter Notebook(プログラムコードと説明文を一つの文書にまとめて実行できる環境)サービスである。GPU・TPUを含むコンピューティングリソースへのアクセスを提供し、機械学習、データサイエンス、教育に適している。利用にはGoogleアカウントが必要である。他者が公開したノートブックの閲覧のみであれば、Googleアカウントは不要である。

【目次】

  1. Google Colaboratoryの概要
  2. Googleアカウントの設定
  3. 基本的な使用方法
  4. 実践演習
  5. データ保護の重要事項
  6. パッケージ管理とファイル操作
  7. 日本語環境と可視化
  8. GPU利用
  9. トラブルシューティング
  10. 制限事項と制約
  11. 付録A:システム情報の確認コマンド
  12. 付録B:応用的な機能

【資料】

PowerPoint版: googlecolab.pptx、PDF版: googlecolab.pdf

YouTube動画: https://www.youtube.com/watch?v=Aq7kFzVszVg

【サイト内のPython関連主要ページ】

【外部リソース】

第1章 Google Colaboratoryの概要

1.1 基本概念の定義

ノートブックは、プログラムコードと説明文を組み合わせた文書形式である。セルは、ノートブック内の編集可能な個別の単位である。セルには、コードを記述する「コードセル」と、説明文を記述する「テキストセル」の2種類がある。ランタイムは、プログラムが実行される環境である。

1.2 Google Colaboratoryとは

Google Colaboratory(以下、Colab)は、Googleが提供するクラウドベースのノートブック環境である。URLは https://colab.research.google.com/ である。ブラウザ上でPythonコードを編集・実行できる。セットアップ不要で無料利用可能であり、利用にはGoogleアカウントが必要である。ただし、他者が公開したノートブックの閲覧のみであれば、Googleアカウントは不要である。

クラウドベースで動作するため、PC上での特別なセットアップは不要である。GPU(Graphics Processing Unit、画像処理装置)やTPU(Tensor Processing Unit、機械学習専用プロセッサ)を含むコンピューティングリソースへのアクセスを提供する。GPU・TPUを使用すると、大量のデータを並列処理でき、機械学習モデルの学習時間を短縮できる。

Google Colaboratoryの画面
図1.1:Google Colaboratoryの画面

1.3 ノートブックの構造

ノートブックは2種類のセルで構成される。コードセルは、Pythonプログラム、コマンド、実行結果を表示する。テキストセルは、説明文、図表を表示する。

ノートブックの構造
図1.2:ノートブックの構造

1.4 画面構成

Webブラウザ上の画面は、左側メニュー(目次、検索と置換、変数、ファイル)、上部メニューバー、コードセルとテキストセルの追加ボタン、セルの配置エリアで構成される。

画面構成
図1.3:画面構成

1.5 システム制約

Colabのセッション(実行環境が起動している状態)には時間制限がある。継続時間は最大12時間であり、90分間の非アクティブ状態が続くとセッションは自動切断される。これらの制限により、長時間の処理中や放置中にセッションが切断され、保存していないデータが失われる可能性がある。

セッション内の一時的なファイル(/contentディレクトリ)は、セッション終了時に削除されるため、重要なデータは必ずGoogle Driveに保存する必要がある。

GPU使用量には上限があり、無料版では使用時間や頻度に応じた動的制限が適用される。上限に達すると一時的に利用できなくなる。

1.6 計算リソースと料金体系

多くの基本機能が無料で利用可能である。無料でGPUやTPUを一定時間利用可能であるが、長時間・大規模な利用には制限がある。

Colabには無料版有料版(Colab Pro、Colab Pro+)が存在する。無料版では、GPUやTPUの使用時間に制限があり、利用状況に応じて一時的にアクセスが制限される場合がある。有料版では、より長時間の利用、優先的なGPUアクセス、より大きなメモリ容量などが提供される。

無料版では最大12時間の実行時間制限がある(利用状況により変動する)。Colab Pro+では、十分なコンピュートユニットがある場合、最大24時間の連続実行が可能である。

1.7 共有機能とデータ保存

作成したノートブックはGoogle Driveに自動保存される。具体的には、Google Driveの「Colab Notebooks」フォルダに保存される。

Google Driveと統合されており、Google Driveに保存されたデータを容易に利用できる。変更履歴が自動保存される。複数人での共同編集が可能であり、編集中は他の編集者の変更がリアルタイムで反映される。

1.8 事前インストールされているライブラリ

NumPy、Pandas、Matplotlib、TensorFlow、PyTorchなど、科学計算・機械学習に必要なライブラリが事前にインストールされている。

事前にインストールされていないライブラリは!pipコマンドでインストールできる。インストールしたライブラリはセッション終了後に使用できなくなるため、新しいセッションでは再インストールが必要である。

1.9 対応ブラウザ

Google Colaboratoryは以下のブラウザで動作する。

  • Google Chrome(最新版)
  • Firefox(最新版および直前のメジャーバージョン)
  • Safari(最新版および直前のメジャーバージョン)

最新版の使用を推奨する。

1.10 他の開発環境との比較

Jupyter Notebookは、ローカル環境で動作し、セットアップが必要だが、時間制限はない。VS Codeおよびその派生版(Windsurfなど)は、統合開発環境であり、多言語対応で拡張機能が豊富である。Google Colaboratoryは、クラウド環境で動作し、セットアップが不要で、GPU・TPUを利用できる。

第2章 Googleアカウントの設定

2.1 Googleアカウントの概要

Googleアカウントは、Googleが提供するオンラインサービスを利用するためのアカウントである。ユーザーIDとパスワードで構成され、利用者自身が設定する。Gmail、Google Drive、Google Cloudなど各種Googleサービスと連携する。

2.2 Google ColaboratoryとGoogleアカウント

Google Colaboratoryの利用にはGoogleアカウントが必要である。

Googleアカウントで利用できる機能は以下の通りである。

  • ノートブックの新規作成、編集、保存、公開
  • Pythonプログラムの編集、実行
  • システム操作コマンド(!pip、%cdなど)の実行
  • ファイルのアップロード、ダウンロード

Googleアカウントなしで利用できる機能は、他者が公開したノートブックの閲覧である。

2.3 Googleアカウントの取得

Googleアカウントは無料で取得できる。登録に必要な情報は、氏名、メールアドレス、パスワード、電話番号(本人確認用)、生年月日、性別である。

個人情報の取り扱いについて各自で確認し、不安がある場合は取得を控える。

2.4 セキュリティ対策と注意事項

セキュリティ対策と注意事項は以下の通りである。

  • 二段階認証を設定する
  • 公開ノートブックでは個人情報を記載しない
  • アカウント乗っ取り防止のため強固なパスワードを使用する
  • 企業や組織での利用時は機密情報の取り扱いに注意する

2.5 Googleアカウント取得手順

  1. GoogleのWebページを開く(https://www.google.com/)
  2. 右上のメニューで「アカウント」を選択する
  3. 「アカウントを作成する」をクリックする
  4. 表示された画面で「自分用」を選択する(「ビジネスの管理用」はGoogleの有料サービスG Suiteである)
  5. 以下の情報を登録する
    • 姓、名
    • 希望するメールアドレス(<ユーザー名>@gmail.com)
    • パスワード(2か所に入力)
    • 電話番号
    • 生年月日、性別
  6. 本人確認のための電話番号を入力し、「次へ」をクリックする(スマートフォンの番号を使用する)
  7. 本人確認手続きを実行する(電話番号認証により本人確認を行う。電話番号は国際電話形式で入力するため、日本の場合は先頭の0を+81に置き換える。例:080-1234-5678は+81-80-1234-5678となる)

第3章 基本的な使用方法

3.1 アクセスとログイン

3.1.1 Google Colaboratoryへのアクセス

WebブラウザでGoogle Colaboratoryにアクセスする。

アクセスURL:https://colab.research.google.com/?hl=ja

3.1.2 ログイン手順

Google Colaboratoryの使用中に「Googleへのログインが必要」と表示された場合、以下の手順でログインする。

ログイン画面
図3.1:ログイン画面
  1. 表示されたログイン画面でGoogleアカウントのIDを入力する
  2. パスワードを入力する
  3. 必要に応じて二段階認証を実行する
  4. ログイン完了後、ノートブックの編集と実行が可能になる

3.2 ノートブックの作成と基本操作

新規ノートブックは、Colabのトップページから「ファイル」→「ノートブックを新規作成」で作成できる。作成されたノートブックは、Untitled*.ipynbという名前でGoogle Driveの「Colab Notebooks」フォルダに自動保存される。

基本的なセル操作は以下の通りである。

  • セルの実行:Shift+Enterで実行して次のセルに移動、Ctrl+Enterで実行のみ
  • セルの追加:Alt+Enterで実行して新しいセルを挿入
  • セルの種類変更:セル左上のドロップダウンメニューから「コード」「テキスト」を選択

3.3 実行の流れ

ノートブックの基本的な実行の流れは以下の通りである。

  1. WebブラウザでGoogle Colaboratoryにアクセスする
  2. Googleアカウントでログインする
  3. セルの編集と実行を行う
    • テキストセルでは説明文を作成する
    • コードセルではPythonプログラムを作成し実行する
  4. 実行順序は通常、上から下へ順次実行する
実行の流れ
図3.2:実行の流れ

3.4 プログラムの実行

3.4.1 コードセルの実行

コードセルでは、Pythonプログラムやシステムコマンドの編集と実行が可能である(Googleアカウントでのログインが必要である)。

実行方法は以下の通りである。

  1. セルを選択する
  2. 実行ボタンをクリックする、またはShift+Enterキーを押す
  3. 実行結果がセルの下に表示される
コードセルの実行
図3.3:コードセルの実行

3.4.2 すべてのセルの実行

画面上部のメニューバーで「ランタイム」をクリックし、表示されるドロップダウンメニューから「すべてのセルを実行」を選択する。

Googleアカウントでのログインが求められた場合はログインする。

3.4.3 実行がうまくいかない場合の対処法

以下の手順を実行する。

  1. Googleアカウントでログインしていない場合は、ログインを行う。その後、すべてのセルを再実行する。
  2. すべてのアクティブなセッション(現在実行中のセッション)を停止する。その後、すべてのセルを再実行する。メニューの「ランタイム」から「セッションの管理」を選択し、アクティブなセッション一覧で「終了」をクリックしてすべてのセッションを終了する。

第4章 実践演習

4.1 演習の目的

本演習では、Google Colaboratoryでのノートブック作成、コードセルの作成、Pythonプログラムの実行を実践する。

4.2 演習手順

4.2.1 ノートブックの新規作成

  1. Google ColaboratoryのWebページを開く(https://colab.research.google.com)
  2. 「ファイル」メニューから「ノートブックを新規作成」を選択する
ノートブックを新規作成
図4.1:ノートブックを新規作成
  1. Googleアカウントでのログインが求められた場合はログインする
ログイン
図4.2:ログイン

4.2.2 変数の代入

  1. コードセルを新規作成する(メニューの「+ コード」をクリックする)
コードセルの新規作成
図4.3:コードセルの新規作成
  1. コードセルにPythonプログラムを記述する
x = 100

変数xに整数値100を代入する。

変数の代入
図4.4:変数の代入

4.2.3 条件分岐

  1. コードセルを新規作成する(メニューの「+ コード」をクリックする)
コードセルの新規作成
図4.5:コードセルの新規作成
  1. コードセルにPythonプログラムを記述する
if x > 20:
  print("big")
else:
  print("small")

変数xの値が20より大きい場合は"big"、そうでなければ"small"を出力する。

条件分岐
図4.6:条件分岐

記述のポイントは以下の通りである。

  • if x > 20の直後に「:」(コロン)を記述する
  • elseの直後に「:」(コロン)を記述する

4.2.4 ループ処理

  1. コードセルを新規作成する(メニューの「+ コード」をクリックする)
コードセルの新規作成
図4.7:コードセルの新規作成
  1. コードセルにPythonプログラムを記述する
# ループ処理
s = 0
for i in [1, 2, 3, 4, 5]:
  s = s + i
print(s)

リスト[1, 2, 3, 4, 5]の各要素を順番に変数sに加算し、最終結果(15)を出力する。

ループ処理
図4.8:ループ処理

記述のポイントは以下の通りである。

  • for i in [1, 2, 3, 4, 5]の直後に「:」(コロン)を記述する
  • 字下げ(インデント)は半角スペース2つである

4.2.5 実行と結果の確認

  1. コードセルを順次実行し、実行結果を確認する

各コードセルの実行手順は以下の通りである。

  1. 最初のコードセル(変数代入)の実行ボタンをクリックする
  2. 2番目のコードセル(条件分岐)の実行ボタンをクリックする("big"が出力される)
  3. 3番目のコードセル(ループ処理)の実行ボタンをクリックする("15"が出力される)
実行結果
図4.9:実行結果

セルは上から順番に実行する。

第5章 データ保護の重要事項

5.1 セッション切断のリスク

Colabのセッションは、以下の条件で自動的に切断される。

  • 最大12時間の連続使用
  • 90分間の非アクティブ状態

セッション切断時、/contentディレクトリに保存されたファイルはすべて削除される。これにより、保存していないデータやモデルが失われる。

5.2 Google Driveへの定期保存

重要なデータは、必ずGoogle Driveに保存する必要がある。以下にデータ保護の方法を示す。

5.2.1 Google Driveのマウント

Google Driveをマウント(接続)することで、クラウドストレージのファイルに直接アクセスできる。セッションが切断されてもGoogle Drive上のデータは保持される。

from google.colab import drive
# Google Driveをマウント
drive.mount('/content/drive')
# マウント確認
!ls /content/drive/MyDrive/

初回実行時は認証画面が表示されるため、指示に従って認証を行う。

5.2.2 モデルの定期保存

機械学習モデルの学習中に定期的に保存することで、セッション切断時のデータ損失を防ぐ。ModelCheckpoint(学習の各段階でモデルを自動保存する機能)を使用する。

from tensorflow.keras.callbacks import ModelCheckpoint

# モデルを自動的にGoogle Driveに保存
# save_best_only=True: 最良の結果のみ保存
# save_freq='epoch': エポック(学習データ全体を1回処理する単位)ごとに保存
checkpoint = ModelCheckpoint(
    '/content/drive/MyDrive/model_checkpoint.h5',
    save_best_only=True,
    save_freq='epoch'
)

# callbacks: 学習中に特定のタイミングで実行される処理
model.fit(train_data, epochs=100, callbacks=[checkpoint])

5.2.3 重要データの即時保存

処理結果や重要なデータを即時にGoogle Driveに保存することで、セッション切断によるデータ損失を防ぐ。

import json
import numpy as np

# 結果辞書の保存
results = {'accuracy': 0.95, 'loss': 0.05}
with open('/content/drive/MyDrive/results.json', 'w') as f:
    json.dump(results, f)

# 処理済みデータの保存
np.save('/content/drive/MyDrive/processed_array.npy', processed_array)

5.3 データ保護のベストプラクティス

  1. 作業開始時:最初にGoogle Driveをマウントする
  2. 学習中:ModelCheckpointなどで定期的に保存する
  3. 処理完了後:結果を即時にGoogle Driveに保存する
  4. 長時間処理:定期的にブラウザを確認し、セッションが切断されていないか確認する

第6章 パッケージ管理とファイル操作

6.1 パッケージのインストール

事前にインストールされていないライブラリは、!pipコマンドでインストールできる。インストールにより、Colabの標準環境にない機能を追加できる。

# 基本的なインストール
!pip install package_name

# 出力を抑制してインストール(-q: quiet、進捗表示を省略)
!pip install -q package_name

# 特定バージョンを指定してインストール
!pip install package_name==1.2.3

# アップグレード
!pip install package_name --upgrade

インストールしたライブラリはセッション終了後に使用できなくなるため、新しいセッションでは再インストールが必要である。

6.2 ファイルのアップロードとダウンロード

6.2.1 画面操作によるファイルアップロード

ローカルPCからColabにファイルを転送する方法である。

  1. 左側メニューから「ファイル」アイコンをクリックする
  2. 「アップロード」ボタンをクリックする、またはファイルをドラッグ&ドロップする
  3. アップロードされたファイルは一時的に保存され、セッション終了時に削除される
ファイルのアップロード
図6.1:ファイルのアップロード

6.2.2 コードによるファイルアップロード

ローカルファイルをColabにアップロードするには、以下のコードを使用する。

from google.colab import files
uploaded = files.upload()

実行すると、GUIでファイル選択ダイアログが表示され、ブラウザ経由でファイルを選択できる。アップロードされたファイルは、/contentディレクトリに配置される。

6.2.3 ファイルのダウンロード

処理結果をローカルPCに保存するには、以下のコードを使用する。

from google.colab import files
files.download('filename.txt')

6.3 作業ディレクトリの変更

マジックコマンド(Jupyter Notebook系の環境で使用できる特殊なコマンド)を使用して、作業ディレクトリを変更できる。作業ディレクトリを変更すると、ファイルパスの指定が簡潔になる。

# 作業ディレクトリをGoogle Drive内に変更
%cd /content/drive/MyDrive/project

第7章 日本語環境と可視化

7.1 日本語フォントの設定

Colabでは標準で日本語フォントが含まれていないため、日本語を含むグラフを作成する際は専用の設定が必要である。設定しないと日本語が文字化けする。

以下のライブラリを使用する方法が簡便である。

# 日本語フォント設定ライブラリのインストールと読み込み
!pip install -q japanize-matplotlib
import japanize_matplotlib

このライブラリにより、matplotlibで日本語表示が可能になる。

7.2 画像の表示

7.2.1 matplotlibによる基本的なグラフ表示

日本語ラベルを含むグラフを表示する基本的な方法を示す。

# 必要なライブラリのインポート
import matplotlib.pyplot as plt
import numpy as np
import japanize_matplotlib

# サンプルデータの作成
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])

# グラフの作成と表示
plt.figure(figsize=(8, 6))
plt.plot(x, y, marker='o')
plt.xlabel('X軸のラベル')
plt.ylabel('Y軸のラベル')
plt.title('日本語タイトル')
plt.grid(True)
plt.show()

7.2.2 OpenCVで読み込んだ画像の表示

OpenCVで読み込んだ画像をmatplotlibで表示する方法を示す。OpenCVはBGR形式(青・緑・赤の順)で画像を読み込むが、matplotlibはRGB形式(赤・緑・青の順)を使用するため、変換が必要である。変換しないと色が正しく表示されない。

import cv2
import matplotlib.pyplot as plt
import japanize_matplotlib

# 画像の読み込み(BGR形式)
img = cv2.imread('sample_image.jpg')

# BGR形式からRGB形式に変換
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# 画像の表示
plt.figure(figsize=(10, 8))
plt.imshow(img_rgb)
plt.title('画像のタイトル')
plt.axis('off')  # 軸を非表示
plt.show()

7.3 動画の表示

MP4形式の動画をColab上で表示する方法である。ノートブック内で直接動画を再生できるため、処理結果の確認に便利である。

from IPython.display import HTML
from base64 import b64encode

def show_mp4(video_path, width=640, height=480):
    """MP4動画をノートブック内に表示する関数"""
    with open(video_path, "rb") as video_file:
        video_data = video_file.read()
    video_base64 = b64encode(video_data).decode()
    video_url = f"data:video/mp4;base64,{video_base64}"
    video_html = f"""
    <video width="{width}" height="{height}" controls>
        <source src="{video_url}" type="video/mp4">
    </video>
    """
    return HTML(video_html)

# 使用例
show_mp4("sample_video.mp4")

この関数は、動画ファイルをBase64エンコードしてHTML内に埋め込むことで、ノートブック内で直接再生可能にする。

第8章 GPU利用

8.1 GPUとは

GPU(Graphics Processing Unit)は、機械学習の計算を高速化するための専用ハードウェアである。GPUは並列計算に優れており、深層学習のような大規模な行列演算を高速に処理できる。

Colabでは、無料でGPUを利用できるが、使用時間には制限がある。

8.2 GPUの有効化

GPUを使用すると、機械学習の学習時間を大幅に短縮できる。使用するには、ランタイムの設定を変更する。

  1. メニューバーから「ランタイム」→「ランタイムのタイプを変更」を選択する
  2. 「ハードウェアアクセラレータ」のドロップダウンから「GPU」を選択する
  3. 「保存」をクリックする

設定変更後、セッションが再起動される。変数やインストールしたライブラリは初期化されるため、必要なセルを再実行する。

8.3 GPU利用可能性の確認

GPUが正しく認識されているか確認する方法を示す。

import torch
import tensorflow as tf

# PyTorchでのGPU確認
print(f"PyTorch GPU利用可能: {torch.cuda.is_available()}")
if torch.cuda.is_available():
    print(f"GPU名: {torch.cuda.get_device_name(0)}")

# TensorFlowでのGPU確認
print(f"TensorFlow GPU: {tf.config.list_physical_devices('GPU')}")

PyTorchとTensorFlowの両方で確認しているのは、使用するフレームワークによってGPU認識状況が異なる場合があるためである。

8.4 GPU使用時の注意事項

  1. 使用時間制限:無料版では、GPU使用時間に制限があり、使用状況に応じて一時的にアクセスが制限される
  2. セッション切断:GPU使用中でも、12時間制限や90分非アクティブ制限は適用される
  3. データ保護:GPU使用中の学習結果は、Google Driveに保存する

第9章 トラブルシューティング

9.1 セッション管理

システムの混雑時や長時間実行時に処理が停止し、再開しない場合がある。セッションは、Google Colaboratoryでコードを実行するための作業環境である。

対処方法は以下の通りである。

  1. メニューから「ランタイム」を選択する
  2. 「セッションの管理」をクリックする
  3. アクティブなセッション一覧から「終了」をクリックする
  4. すべてのセッションを終了する
  5. 最初からコードを再実行する

9.2 エラー対処法

よくあるエラーと対処法は以下の通りである。

  • ライブラリインストールエラー!pip install ライブラリ名でインストールする
  • メモリ不足エラー:「ランタイム」から「ファクトリーリセット」で環境を初期化する
  • ファイル読み込みエラー:ファイルパスとファイル名を確認する

エラー解決の基本手順は以下の通りである。

  1. エラーメッセージを最後の行から読む
  2. エラーの種類(SyntaxError、NameErrorなど)を特定する
  3. 「ランタイム」から「すべての出力を表示」でログ全体を確認する
  4. 公式ドキュメント(https://colab.research.google.com/notebooks/)で解決策を検索する

9.3 セッション再開時の復旧

セッションが切断された後に作業を再開する際の復旧方法を以下に示す。Google Driveに保存したデータを読み込むことで、作業を途中から再開できる。

# 中断したトレーニングの再開
try:
    model = tf.keras.models.load_model('/content/drive/MyDrive/model_checkpoint.h5')
    print("モデルを復旧しました")
except:
    print("新しいモデルを作成します")
    model = create_new_model()

# データの復旧
try:
    processed_array = np.load('/content/drive/MyDrive/processed_array.npy')
    print("データを復旧しました")
except:
    print("データを再処理します")
    processed_array = preprocess_data()

第10章 制限事項と制約

10.1 実行時間と計算資源の制限

無料版では最大12時間の実行時間制限がある(利用状況により変動する)。Colab Pro+では、十分なコンピュートユニットがある場合、最大24時間の連続実行が可能である。

CPUはIntel Xeonプロセッサである(コア数は変動する)。メモリは標準メモリプロファイル(無料版)、高メモリプロファイル(有料版、利用状況による)である。ストレージは約100GBの一時ディスク容量である。GPU・TPUは種類が時期により変動する(無料版では制限がある)。

10.2 禁止されている使用方法

以下の使用方法は禁止されている。違反した場合、アカウントが制限される可能性がある。

  • ファイルホスティング、メディア配信
  • トレントダウンロード、P2Pファイル共有
  • リモートプロキシへの接続
  • 暗号通貨のマイニング
  • サービス拒否攻撃の実行
  • パスワードクラッキング
  • 複数アカウントによる制限回避
  • ディープフェイクの作成
  • SSHシェル、リモートデスクトップの使用(無料版)
  • チェスのトレーニング(無料版)
  • 分散コンピューティングワーカーの実行(無料版)

付録A:システム情報の確認コマンド

A.1 基本環境情報の確認

利用可能なハードウェアとソフトウェア環境を事前に確認することで、処理に適した環境かどうかを判断できる。

# システム情報の確認
!cat /proc/version
!free -h         # メモリ使用量の確認
!df -h           # ディスク使用量の確認

A.2 GPU・CUDA環境の確認

GPU利用可能性とCUDAバージョンを確認する。CUDAは、NVIDIAが提供するGPU向け並列計算プラットフォームである。

# GPU情報の詳細確認
!nvidia-smi
!nvidia-smi --query-gpu=gpu_name,driver_version,memory.total --format=csv

# CUDAバージョンの確認
!nvcc -V

執筆時点では、ColabではCUDA 12.x系が使用されているが、バージョンは予告なく変更される可能性がある。

A.3 ライブラリバージョンの確認

機械学習に使用する主要ライブラリのバージョンとGPU利用可能性を確認する。ライブラリのバージョンによって動作が異なる場合があるため、トラブル発生時の原因特定に役立つ。

import tensorflow as tf
import torch

print(f"TensorFlow: {tf.__version__}")
import keras
print(f"Keras: {keras.__version__}")

# GPU利用可能性の確認
print(f"PyTorch GPU利用可能: {torch.cuda.is_available()}")
if torch.cuda.is_available():
    print(f"GPU名: {torch.cuda.get_device_name(0)}")

# TensorFlowでのGPU確認
print(f"TensorFlow GPU: {tf.config.list_physical_devices('GPU')}")

付録B:応用的な機能

B.1 変数の監視と詳細情報

デバッグやコード解析に有用な情報取得方法である。マジックコマンド(%で始まる特殊コマンド)を使用する。

# 変数の内容確認
%whos      # 詳細な変数一覧
%who_ls    # 変数名のリスト
# 変数の詳細情報
variable_name?   # 簡潔な情報
variable_name??  # 詳細な情報(ソースコードを含む)

B.2 TPU設定

TPU(Tensor Processing Unit)は、Googleが開発した機械学習専用プロセッサである。GPUよりも高速な場合があるが、対応フレームワークが限定される。使用頻度は低いが、特定の大規模モデル学習で有用である。

import tensorflow as tf

# TPU初期化
try:
    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()
    tf.config.experimental_connect_to_cluster(tpu)
    tf.tpu.experimental.initialize_tpu_system(tpu)
    strategy = tf.distribute.TPUStrategy(tpu)
    print(f"TPUコア数: {strategy.num_replicas_in_sync}")
except ValueError:
    print("TPUが利用できません")

B.3 GPU使用時の詳細設定

GPUメモリの動的割り当てを有効化することで、必要な分だけメモリを使用し、メモリ不足エラーを防ぐことができる。

import tensorflow as tf

# GPU利用可能性の確認
gpus = tf.config.list_physical_devices('GPU')
if gpus:
    print(f"利用可能なGPU: {gpus}")
    # メモリ成長を有効化(メモリエラー防止)
    try:
        tf.config.experimental.set_memory_growth(gpus[0], True)
        print("GPUメモリの動的割り当てを有効化しました")
    except RuntimeError as e:
        print(f"エラー: {e}")
else:
    print("GPUが利用できません")

B.4 GitHubからのライブラリ直接インストール

PyPI(Pythonパッケージの公式リポジトリ)に登録されていないライブラリをインストールする方法である。Detectron2(Meta製の物体検出ライブラリ)などが該当する。

!python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'