🧠 STEP 6: TensorFlow/Kerasの環境構築
Google Colabを使ってディープラーニングの実行環境を準備しよう
📋 このステップで学ぶこと
- TensorFlowとKerasとは何か?その関係は?
- Google Colabの使い方(GPUの設定方法)
- ⚠️ Google Colab制限事項と対策(超重要!)
- GPUが正しく設定されているかの確認方法
- テンソル(Tensor)の基本操作
🎯 1. TensorFlow と Keras とは?
1-1. TensorFlow(テンソルフロー)とは?
TensorFlowは、Googleが開発したオープンソースの機械学習フレームワークです。
世界中で最も使われているディープラーニングフレームワークの1つです。
- 開発元:Google Brain チーム
- リリース:2015年
- 特徴1:研究から本番環境まで一貫して使える
- 特徴2:GPU/TPUで高速計算ができる
- 特徴3:スマートフォンやWebブラウザでも動作可能
1-2. Keras(ケラス)とは?
Kerasは、ニューラルネットワークを簡単に構築するためのAPIです。
TensorFlowの上で動作し、複雑な操作を数行のコードで書けるようにしてくれます。
- 開発者:François Chollet(Googleのエンジニア)
- リリース:2015年
- 特徴1:シンプルで直感的なAPI
- 特徴2:初心者でも扱いやすい
- 特徴3:TensorFlow 2.0以降は公式に統合
1-3. TensorFlowとKerasの関係
TensorFlowとKerasは「車のエンジンとハンドル」のような関係です。
- TensorFlow = エンジン(複雑だが高性能)
- Keras = ハンドル(簡単に操作できる)
以下の図は横スクロールできます。
Kerasを使えば、ニューラルネットワークを数行のコードで構築できます。
TensorFlowの複雑な部分はKerasが隠してくれるので、初心者でも安心です。
インポート方法:
☁️ 2. Google Colabの使い方
2-1. Google Colaboratoryとは?
Google Colab(コラボ)は、Googleが提供する無料のクラウド型Python実行環境です。
ブラウザだけで、高性能なGPUを使ってディープラーニングができます。
- 無料でGPUが使える!(通常、GPUは数十万円)
- インストール不要(ブラウザだけでOK)
- TensorFlow/Kerasが最初から入っている
- Googleアカウントがあればすぐ使える
- Google Driveと連携できる
2-2. Google Colabの始め方(ステップバイステップ)
ブラウザで以下のURLにアクセスします:
https://colab.research.google.com/
Googleアカウントでログインします。
アカウントがない場合は、無料で作成できます。
画面左上の「ファイル」→「ノートブックを新規作成」をクリック。
新しいノートブック(.ipynbファイル)が作成されます。
この設定をしないと、GPUが使えず学習が非常に遅くなります。
- 画面上部の「ランタイム」メニューをクリック
- 「ランタイムのタイプを変更」を選択
- 「ハードウェア アクセラレータ」を「GPU」に変更
- 「保存」ボタンをクリック
2-3. 基本操作を覚えよう
- 方法1:Shift + Enter(実行して次のセルへ移動)
- 方法2:Ctrl + Enter(実行して同じセルにとどまる)
- 方法3:セル左の再生ボタン(▶)をクリック
Hello, Deep Learning! Google Colabへようこそ!
- コードセル:Pythonコードを書いて実行する
- テキストセル:説明やメモをMarkdown形式で書く
「+ コード」ボタンでコードセル、「+ テキスト」ボタンでテキストセルを追加できます。
⚠️ 3. Google Colab制限事項と対策(超重要!)
Google Colabは無料で素晴らしいサービスですが、いくつかの制限があります。
これを知らないと、学習中に困ることがあるので、しっかり理解しましょう!
3-1. 制限1:連続使用時間制限
制限の内容:
- 連続して使用できるのは最大12時間
- アイドル状態(何も実行しない)が90分続くと切断
- 切断されると、すべての変数・メモリがクリアされる
対策:
- 長時間学習が必要な場合は、epochを分割する
- 定期的にコードを実行してアイドル状態を回避
- モデルを定期的に保存する(ModelCheckpoint、次のパートで学習)
3-2. 制限2:GPU割り当て制限
制限の内容:
- GPUを使いすぎると、次回からCPUのみに制限されることがある
- 混雑時はGPU割り当てが受けられないことがある
- 割り当てられるGPUの種類はランダム(T4、K80など)
対策:
- 混雑時間帯を避ける(日本時間19〜23時は混みやすい)
- GPUを使わない作業(データ前処理など)はCPUで実行
- 使い終わったらセッションを確実に終了する
3-3. 制限3:メモリ制限
制限の内容:
- RAM:約12GB(変動あり)
- GPUメモリ:約15GB(T4の場合、変動あり)
- メモリを使い切ると、ランタイムがクラッシュする
対策:
- batch_sizeを小さくする(32 → 16 → 8 と段階的に)
- 大きな画像は事前にリサイズする
- 不要な変数は削除する(del 変数名)
一度にGPUに送り込むデータの数です。
batch_size=32なら、32枚の画像を同時に処理します。
メモリ不足エラーが出たら:
batch_size=32 → 16 → 8 と半分ずつ減らすと解決することが多いです。
3-4. 制限4:ストレージの一時性(最も重要!)
制限の内容:
- Colabのファイルシステムは一時的
- セッション終了(12時間経過、手動終了など)ですべて消える
- 苦労して学習したモデルも消えてしまう
対策:Google Driveにマウントする(必須!)
3-5. Google Driveをマウントする方法
from google.colab import drive
Google Colabのdriveモジュールをインポートします。
drive.mount(‘/content/drive’)
Google Driveを「/content/drive」というパスにマウント(接続)します。
初回実行時は、Googleアカウントの認証が求められます。
Mounted at /content/drive ※ 初回は認証画面が表示されます。 「Googleアカウントへのアクセスを許可」してください。
学習したモデルは、Google Driveに保存すれば永続的に残ります。
3-6. 無料版とColab Proの比較
| 項目 | 無料版 | Colab Pro($9.99/月) |
|---|---|---|
| 連続使用時間 | 最大12時間 | 最大24時間 |
| GPU | 標準GPU(T4、K80) | 高速GPU優先(V100、A100) |
| メモリ | 約12GB RAM | 約25GB RAM |
| GPU割り当て | 混雑時は割り当てなし | 優先的に割り当て |
このコースの内容は、無料版で問題なく学習できます。
制限を理解して、上手に使いこなしましょう!
本格的にディープラーニングを仕事で使う場合は、Colab Proを検討してください。
⚙️ 4. GPU設定の確認
4-1. GPUが有効になっているか確認する
GPUを有効に設定しても、本当に使えているか確認しましょう。
import tensorflow as tf
TensorFlowライブラリをtfという名前でインポートします。
tf.__version__
TensorFlowのバージョンを確認します。
tf.config.list_physical_devices(‘GPU’)
利用可能なGPUのリストを取得します。
リストが空([])なら、GPUが使えていません。
TensorFlowバージョン: 2.15.0 GPU利用可能: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')] ✅ GPUが利用可能です! GPU名: /physical_device:GPU:0
TensorFlowバージョン: 2.15.0 GPU利用可能: [] ⚠️ GPUが利用できません → 「ランタイム」→「ランタイムのタイプを変更」でGPUを選択してください
4-2. GPUの詳細情報を確認する
NVIDIA製GPUの詳細情報を表示するコマンドです。
先頭の「!」はColabでシェルコマンドを実行する記号です。
以下の出力は横スクロールできます。
- Tesla T4:最も一般的(メモリ15GB)、無料版でよく割り当てられる
- Tesla K80:古いGPU(メモリ12GB)、少し遅い
- Tesla P100:やや高速(Colab Proで出やすい)
- Tesla V100、A100:最高性能(Colab Proで出やすい)
どのGPUが割り当てられるかはランダムです。
無料版では主にT4またはK80が割り当てられます。
🔢 5. テンソル(Tensor)の基本操作
5-1. テンソルとは?
テンソル(Tensor)とは、多次元配列のことです。
TensorFlowという名前の「Tensor」は、まさにこのテンソルから来ています。
- 0次元(スカラー):ただの数字 → 5
- 1次元(ベクトル):数字の列 → [1, 2, 3]
- 2次元(行列):表形式 → [[1,2], [3,4]]
- 3次元:画像など → 高さ × 幅 × 色チャンネル
- 4次元:画像のバッチ → バッチ数 × 高さ × 幅 × 色
以下の図は横スクロールできます。
5-2. テンソルを作成する
tf.constant(値)
値からテンソルを作成します。constantは「定数」の意味で、
作成後は値を変更できないテンソルになります。
スカラー: tf.Tensor(42, shape=(), dtype=int32) 形状: () ベクトル: tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32) 形状: (5,) 行列: tf.Tensor( [[1 2 3] [4 5 6]], shape=(2, 3), dtype=int32) 形状: (2, 3)
5-3. shapeの読み方
shape=() → 0次元(スカラー)
shape=(5,) → 1次元、要素数5
shape=(2, 3) → 2次元、2行3列
shape=(2, 3, 4) → 3次元、2×3×4
shape=(32, 28, 28, 3) → 4次元、32枚の28×28ピクセルRGB画像
5-4. テンソルの演算
加算 (a + b): tf.Tensor([5 7 9], shape=(3,), dtype=int32) 減算 (a - b): tf.Tensor([-3 -3 -3], shape=(3,), dtype=int32) 乗算 (a * b): tf.Tensor([ 4 10 18], shape=(3,), dtype=int32) 除算 (a / b): tf.Tensor([0.25 0.4 0.5 ], shape=(3,), dtype=float64)
5-5. 行列の積(重要!)
ニューラルネットワークでは、行列の積が頻繁に使われます。
行列の積: tf.Tensor( [[19 22] [43 50]], shape=(2, 2), dtype=int32)
[[1, 2], [[5, 6], [[1×5+2×7, 1×6+2×8], [[19, 22],
[3, 4]] × [7, 8]] = [3×5+4×7, 3×6+4×8]] = [43, 50]]
5-6. NumPyとの変換
NumPy配列とTensorFlowテンソルは、簡単に相互変換できます。
NumPy配列: [1 2 3] <class 'numpy.ndarray'> TFテンソル: tf.Tensor([4 5 6], shape=(3,), dtype=int64)
ディープラーニングでは、すべてのデータがテンソルとして扱われます。
・画像 → 3次元テンソル(高さ × 幅 × 色)
・テキスト → 2次元テンソル(文の数 × 単語数)
・音声 → 2次元テンソル(時間 × 周波数)
次のステップから、このテンソルを使ってニューラルネットワークを構築していきます!
📝 STEP 6 のまとめ
- TensorFlowはGoogleの機械学習フレームワーク
- KerasはTensorFlowの高レベルAPIで、簡単にモデルを作れる
- Google Colabは無料でGPUが使えるクラウド環境
- Colabには制限がある(12時間、GPU割り当て、メモリ、ストレージ)
- Google Driveマウントでファイルを永続保存できる
- テンソルは多次元配列で、ディープラーニングの基本データ構造
- 12時間で切断される → モデルを定期的に保存する
- ファイルは消える → Google Driveにマウントして保存
- メモリ不足が起きたら → batch_sizeを32→16→8と減らす
次のSTEP 7では、Kerasの基本APIを学び、
実際にニューラルネットワークを構築する方法を理解しましょう!
📝 練習問題
TensorFlowとKerasの関係
TensorFlowとKerasの関係について正しいものを選んでください。
- A. Kerasは TensorFlow と別の独立したフレームワークである
- B. Keras は TensorFlow の高レベルAPIである
- C. TensorFlow は Keras の一部である
- D. Keras を使うには別途インストールが必要
なぜBが正解なのか?
KerasはTensorFlowの高レベルAPIです。
「高レベル」とは、複雑な操作を簡単なコードで書けるという意味です。
他の選択肢の解説:
Aが間違い:以前は独立したライブラリでしたが、TensorFlow 2.0以降は公式に統合されています。
Cが間違い:逆です。KerasがTensorFlowの一部(API)として動作します。
Dが間違い:TensorFlow 2.0以降はKerasが組み込まれているので、別途インストールは不要です。
Google Colabの制限
Google Colabの無料版について正しくないものを選んでください。
- A. 連続使用時間は最大12時間
- B. セッション終了後もファイルは永続的に保存される
- C. アイドル状態が90分続くと切断される
- D. GPUが必ず使えるとは限らない
なぜBが正しくないのか?
Google Colabのファイルシステムは一時的です。
セッションが終了すると(12時間経過、手動終了など)、すべてのファイルが消えます。
対策:Google Driveをマウントする
他の選択肢の解説:
A、C、Dはすべて正しい記述です。これらの制限を理解して、上手にColabを使いましょう。
メモリ不足エラーの対策
Google Colabでメモリ不足エラーが発生した場合、最も効果的な対策を選んでください。
- A. ランタイムを再起動する
- B. batch_size を小さくする(例: 32 → 16)
- C. より大きな画像サイズを使う
- D. epoch数を増やす
なぜBが最も効果的なのか?
batch_sizeは、一度にGPUメモリに載せるデータの数です。
これを小さくすると、メモリ使用量が直接的に減ります。
他の選択肢の解説:
Aが不十分:再起動しても、同じコードを実行すれば同じエラーが再発します。
Cが逆効果:画像サイズを大きくすると、メモリ使用量が増えてしまいます。
Dが無関係:epoch数は学習の繰り返し回数で、メモリ使用量には影響しません。
テンソルの形状
以下のコードで作成されるテンソルの形状(shape)はどれですか?
- A. (2, 2)
- B. (2, 2, 2)
- C. (4, 2)
- D. (8,)
shapeの読み方
このテンソルは3次元で、形状は(2, 2, 2)です。
確認方法:
GPUとCPUの使い分け
以下の作業のうち、CPUで実行すべきものを選んでください。
- A. ニューラルネットワークの学習(model.fit)
- B. データの前処理(正規化、リサイズなど)
- C. 大規模な行列演算
- D. 画像の推論(model.predict)
なぜBがCPU向きなのか?
データの前処理(ファイル読み込み、リサイズ、正規化など)は、CPUで十分な処理です。
効率的なGPU使用法:
- データ前処理 → CPUで実行
- ランタイムをGPUに変更
- モデルの学習・推論 → GPUで実行
- 学習終了後はセッションを終了(GPU節約)
他の選択肢の解説:
A、C、Dは大量の並列計算が必要なので、GPUで実行すべきです。
特にmodel.fit()(学習)はGPUがないと非常に時間がかかります。
学習メモ
ディープラーニング基礎 - Step 6