Keras 3.0 は 2023年後半にリリースされ、2024年初頭に本格展開された大型アップデートです。 これまでの「TensorFlowの高レベルAPI」という立場から脱却し、 PyTorch・JAX・TensorFlow の3つを共通コードで扱う「マルチバックエンドフレームワーク」へと進化しました。
Keras 3.0 の特徴
Keras 3.0 は以下のバックエンドをサポートします:
- TensorFlow
- PyTorch
- JAX
コードはどのバックエンドでも同じように動くため、 1つの記述で複数のフレームワークを横断できるのが最大の魅力です。
簡易比較表
| 項目 | TensorFlow | PyTorch | JAX |
|---|---|---|---|
| 主な用途 | 実務・デプロイ(TF Lite / TFJS) | 研究・実験(論文再現) | 高速化・大規模(TPU と相性良) |
| GPU/TPU 性能 | 良好(TPU サポートあり) | 良好(torch.compile 等で高速化) | 非常に良好(XLA により高速) |
| デバッグ性 | やや堅め | 直感的でデバッグしやすい | 関数型寄りで慣れが必要 |
| エコシステム(周辺ツール) | 豊富(TF Lite / TFJS / TFX) | 豊富(Hugging Face, PyTorch Lightning等) | 成長中(研究向けライブラリ中心) |
主な変更点まとめ
① TensorFlow 依存の解消(独立したパッケージへ)
pip install keras
KerasがTensorFlowとは独立したライブラリとなり、旧バージョンの tf.keras から脱却しました。
② モデル保存形式の統一(.keras: Universal Save Format)
model.save("model.keras")
この .keras 形式は、どのバックエンドで学習しても、どのバックエンドで読み込み・推論ができる**ユニバーサルな保存形式**です。
③ API の整理とモジュール構造の刷新
from keras import layers, models
Keras 3.0 の基本コード例
from keras import layers, models
model = models.Sequential([
layers.Dense(128, activation="relu"),
layers.Dense(10, activation="softmax"),
])
model.compile(
optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"]
)
model.summary()
Google Colab での動作確認
Google Colab は 2024〜2025 年現在、
デフォルトで TensorFlow バックエンドの Keras 3.x がインストール済みです。
そのため追加設定なしで Keras 3.0 の動作確認ができます。
① Colab で Keras バージョンを確認
import keras
keras.__version__
3.10.0
「3.x.x」と表示されれば Keras 3 系が利用可能です。
② 簡単なモデルで動作確認
from keras import layers, models
from keras.datasets import mnist
# ===== Load dataset =====
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# ===== Build model =====
model = models.Sequential([
layers.Flatten(input_shape=(28, 28)),
layers.Dense(128, activation="relu"),
layers.Dropout(0.2),
layers.Dense(10, activation="softmax")
])
model.compile(
optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"]
)
# ===== Train =====
model.fit(x_train, y_train,
epochs=3,
validation_data=(x_test, y_test))
問題なく学習が進めば、Keras 3.0 が Colab 環境で正常に動作しています。
③ PyTorch / JAX バックエンドで動かしたい場合
ColabでTensorFlow以外のバックエンドを使用する場合、以下の設定が必要です。重要な注意点として、環境変数 (%env) の設定は、
必ず Keras をインポートするセッションの最初に実行してください。
PyTorch バックエンド
Keras 3で PyTorch をバックエンドとして使用するには、まず PyTorch のインストールが必要です(Google Colabでは、すでにインストール済見なので実行不要)。
!pip install torch # PyTorch本体のインストール(必要に応じて) %env KERAS_BACKEND=torch # 環境変数設定後に Keras をインポート import keras keras.backend.backend()バックエンドが変更されていることが分かります。
env: KERAS_BACKEND=torch torch
【実行ログに関する補足】
Keras 3が設計上、どのバックエンド(TensorFlow, PyTorch, JAX)を使っていても、統一された形式(TensorFlowに近い形式)でログ出力されます。
ログ表示が変わらなくても、内部的には PyTorch が利用されています。
実行ログ
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz 11490434/11490434 ━━━━━━━━━━━━━━━━━━━━ 1s 0us/step Epoch 1/3 1875/1875 ━━━━━━━━━━━━━━━━━━━━ 33s 15ms/step - accuracy: 0.8634 - loss: 0.4758 - val_accuracy: 0.9583 - val_loss: 0.1417 Epoch 2/3 1875/1875 ━━━━━━━━━━━━━━━━━━━━ 38s 20ms/step - accuracy: 0.9562 - loss: 0.1507 - val_accuracy: 0.9690 - val_loss: 0.1011 Epoch 3/3 1875/1875 ━━━━━━━━━━━━━━━━━━━━ 50s 27ms/step - accuracy: 0.9656 - loss: 0.1120 - val_accuracy: 0.9725 - val_loss: 0.0856 <keras.src.callbacks.history.History at 0x7c9811b46720>
JAX バックエンド
google Colabでは、すでにインストール済み。
%env KERAS_BACKEND=jax
import keras
keras.backend.backend()
バックエンドが変更されていることがわかる。
env: KERAS_BACKEND=jax jax
実行ログ
実行結果はPyTorchの場合と同じ
注意点
- バックエンド依存ライブラリの制限: `tf.data` や `torch.nn` など、各バックエンド独自の低レベルな機能やデータパイプラインは、Kerasコード内では原則使用できません。
- モデル保存形式: 旧来の `.h5` 形式は互換性のために維持されていますが、**ユニバーサルな `.keras` 形式の使用が強く推奨**されます。(`.h5` は将来的に廃止される可能性があります。)
まとめ
Keras 3.0 は「フレームワーク横断 API」という新しい位置付けで、
TensorFlow の縛りを解き放つ大幅アップデートとなりました。
Google Colab でもすぐに使えるため、機械学習学習者にとって最も扱いやすい環境です。

0 件のコメント:
コメントを投稿