Keras 3 : 新しいマルチバックエンド Keras (翻訳/解説)
翻訳 : クラスキャット セールスインフォメーション
作成日時 : 11/29/2023
* 本ページは、以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Website: www.classcat.com ; ClassCatJP
Keras 3 : 新しいマルチバックエンド Keras
Keras 3 は Keras API の新しいマルチバックエンド実装で、TensorFlow, JAX, そして PyTorch をサポートします。
インストール
pip によるインストール
Keras 3 は keras-core という名前の PyPI のプレビューリリースとして利用可能です。Keras 2 (tf.keras) は tensorflow パッケージとともに配布されます。
- keras-core のインストール :
pip install keras-core
- バックエンド・パッケージのインストール
keras-core を使用するためには、選択したバックエンド: tensorflow, jax, or torch もインストールする必要があります。特定の Keras 3 機能: 特定の前処理層や tf.data パイプラインを使用するために必要であることに注意してください。
Note : keras-core パッケージを使用している場合 Keras インポートを切り替える必要もあります。”import keras_core as keras” を使用してください。これは PyPI の Keras 3 のリリースまでの一時的なステップです。
ローカルインストール
Keras 3 は Linux と MacOS システムと互換性があります。ローカル開発バージョンをインストールするには :
- 依存関係のインストール :
pip install -r requirements.txt
- ルートディレクトリからインストールコマンドを実行します。
python pip_build.py --install
requirements.txt ファイルは TensorFlow, JAX と PyTorch の CPU-only バージョンをインストールします。GPU サポートについては、TensorFlow, JAX と PyTorch のために個別の requirements-{backend}-cuda.txt も提供しています。これらは pip 経由ですべての CUDA 依存関係をインストールし NVIDIA ドライバが事前インストールされていることを想定しています。CUDA バージョンの不一致を回避するために各バックエンドについてクリーンな python 環境を勧めます。例として、ここに conda で Jax GPU 環境を作成する方法を示します :
conda create -y -n keras-jax python=3.10
conda activate keras-jax
pip install -r requirements-jax-cuda.txt
python pip_build.py --install
バックエンドの設定
環境変数 KERAS_BACKEND をエクスポートすることができて、あるいは貴方のバックエンドを設定するために ~/.keras/keras.json にあるローカル config ファイルを編集することもできます。利用可能なバックエンドオプションは : “tensorflow”, “jax”, “torch” です。例えば :
export KERAS_BACKEND="jax"
In Colab, you can do:
import os
os.environ["KERAS_BACKEND"] = "jax"
import keras_core as keras
Note : バックエンドは keras をインポートする前に設定される必要があり、バックエンドはパッケージがインポートされた後では変更できません。
後方互換性
Keras 3 は (TensorFlow バックエンドを使用する場合) tf.keras の drop-in 置き換えとして動作することを意図しています。既存の tf.keras コードを使用し、model.save() への呼び出しが最新の .keras 形式を使用していることを確認すればオーケーです。
貴方の tf.keras モデルがカスタムコンポーネントを含まない場合、JAX や PyTorch の上で直ちに実行を開始することができます。
カスタムコンポーネント (e.g. カスタム層やカスタム train_step()) を含む場合には、通常はそれをバックエンド透過な実装に数分で変換することが可能です。
更に、Keras モデルは、使用しているバックエンドに関係なく、どのような形式のデータセットも利用することができます : 貴方のモデルを既存の tf.data.Dataset や PyTorch DataLoader で訓練することができます。
Keras 3 タイムライン (スケジュール)
現時点で PyPI で keras-core という名前のもとで Keras 3 をプレビューリリースとしてリリースしています。ライブラリの将来に関心がある人はそれを試してフィードバックをくださることを奨励します。
Keras 2 の現在の安定版リリースは tf-keras レポジトリで見つけられます。
リリースタイムライン (スケジュール) のアップデートが利用可能となれば直ちに共有します。
何故 Keras 3 を使うのでしょう?
- 上位の Keras ワークフローを任意のフレームワーク上で実行できます — 各フレームワークの優位点から自在に恩恵を受けることができます、例えば JAX のスケーラビリティとパフォーマンス、あるいは TensorFlow のプロダクションエコシステムのオプションです。
- 任意のフレームワークの低位なワークフロー内で利用するカスタムコンポーネント (e.g. 層、モデル、メトリクス) を作成することができます。
- Keras モデルを native TF, JAX や PyTorch でゼロから書かれた訓練ループで訓練することができます。
- Keras モデルを PyTorch-native Module や JAX-native モデル関数の一部として使用することができます。
- フレームワークのロックインを回避して貴方の ML コードを将来的にも利用する (future-proof) ことができるようにします。
- PyTorch ユーザとして : 少なくとも、Keras のパワーとユーザビリティにアクセスできます!
- JAX ユーザとして : get access to a fully-featured, battle-tested, well-documented modeling and training library.
以上