Keras 3 — マルチバックエンドの深層学習
Keras 3はJAX、TensorFlow、PyTorch、OpenVINOで動作 — 1つのコード、どのバックエンドでも。20-350%の高速化、keras.ops、KerasCV/Hub。GitHub 64kスター。
Keras 3はkeras-teamによるマルチバックエンド深層学習フレームワーク — 「人のための深層学習」。Keras 2との最大の違い:TensorFlowへの依存がなくなりました。1つのコードベースがJAX、TensorFlow、PyTorch、OpenVINO(推論のみ)で動作。~64k GitHubスター、500万人以上の開発者が利用。
なぜマルチバックエンドか#
従来はフレームワークを選び、それに従うしかありませんでした。Keras 3はAPIを計算基盤から分離します:
- ロックインなし — 環境変数1つでバックエンドを切替
- 最良の性能 — モデルごとに最速のバックエンドを選択。Kerasのベンチマークでは20-350%の高速化、GPU/TPU/CPUでは通常JAXが勝利
- エコシステムの選択肢 — KerasモデルはPyTorchの
Moduleであり、TensorFlowのSavedModelとしてエクスポートでき、JAXのステートレス関数としてもインスタンス化可能
バックエンドの選択#
export KERAS_BACKEND="jax" # または: tensorflow, torch, openvinobashまたは~/.keras/keras.jsonを編集。各バックエンドの最小バージョン(Keras 3安定版):TensorFlow 2.16.1、JAX 0.4.20、PyTorch 2.1.0、OpenVINO 2025.3。
| バックエンド | 最適な用途 |
|---|---|
| JAX | GPU・TPUで最速の訓練/推論、XLA |
| TensorFlow | 既存のTFスタック、tf.dataパイプライン |
| PyTorch | HFエコシステム、動的モデル、研究 |
| OpenVINO | CPU推論の最適化(Intel) |
keras.ops — 統一されたNumPyライクAPI#
Keras 3には全バックエンドで動く完全なNumPy APIであるkeras.opsが付属 — カスタムレイヤー、損失関数、メトリクスがtf. / torch.インポートなしでどこでも動作:
import keras
import numpy as np
x = keras.ops.ones((3, 3))
y = keras.ops.matmul(x, keras.ops.transpose(x))pythonクロスフレームワークのデータパイプライン#
Keras 3モデルはどのパイプラインでも訓練可能 — tf.data.Dataset、torch.utils.data.DataLoader、NumPy配列、Pandas DataFrame、keras.utils.PyDataset。書き換えは不要。
完全な高レベルAPI#
レイヤー、メトリクス、損失関数、オプティマイザ、コールバック、訓練ループ、保存/シリアライズ — すべてがバックエンド非依存で用意されています。カスタムtrain_step()はバックエンドごとに書く必要がありますが、compute_loss()はどこでも動作します。
例:同じモデル、どのバックエンドでも#
import os
os.environ["KERAS_BACKEND"] = "jax" # 切替: "tensorflow", "torch"
import keras
model = keras.Sequential([
keras.Input(shape=(28, 28)),
keras.layers.Flatten(),
keras.layers.Dense(128, activation="relu"),
keras.layers.Dense(10, activation="softmax"),
])
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy")
model.fit(x_train, y_train, epochs=5)python同じコードがJAX、TF、PyTorchで動作します。
事前学習済みモデル#
- Keras Applications: 40モデルすべて(ResNet、EfficientNet、MobileNet…)が全バックエンド対応
- KerasCV & KerasHub: BERT、OPT、Whisper、T5、StableDiffusion、YOLOv8、SegmentAnything — 全バックエンド
Keras 2 / tf.kerasからの移行#
組み込みレイヤーのみのモデルはほぼ無変更で移行可能。カスタムのtf.*コードはkeras.opsへの置換が必要で、バックエンド固有のtrain_step()オーバーライドはバックエンドごとに実装します。移行後は環境変数1つでJAXやPyTorchへ切替可能。
長所と短所#
長所:
- 一度書けば4つのフレームワークで動作
- フレームワークロックインなし — 2026年では貴重
- JAXバックエンドで最先端の性能
- tf.kerasを作った同じチーム(François Chollet)が開発
短所:
- カスタム訓練ループはバックエンドごとのコードが必要
- OpenVINOは推論のみ
- 新しいdistribution API(device mesh)は当面JAXのみ
- ニッチなカスタムopはバックエンド固有のフォールバックが必要な場合も
まとめ#
Keras 3は、2026年において分野全体で最も統一された深層学習APIに近い存在です。TensorFlow、PyTorch、JAXのどちらが勝つかを選ぶのではなく、一度書いたモデルをどこでも実行し、各フレームワークの最高性能を引き出せます。ライブラリを作るチームや複数のユーザーに提供するチームにとって、標準的な推奨になりつつあります。