Keras Core 0.1 : 新しいマルチバックエンド Keras (README) (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 07/12/2023 (0.1.0)
* 本ページは、github の keras-team/keras-core レポジトリの以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
Keras Core 0.1 : 新しいマルチバックエンド Keras (README)
Keras Core は Keras API の新しいマルチバックエンド実装で、TensorFlow, JAX, そして PyTorch をサポートします。
警告: 現時点で、このパッケージは実験的です。それは粗削りで、すべてが期待通りには動作するとは限りません。私たちは現在それを改良するためにハードワークしています。
準備ができれば、このパッケージは Keras 3.0 となり tf.keras を包含する予定です。
ローカルインストール
Keras Core は Linux と MacOS システムと互換性があります。ローカル開発バージョンをインストールするには :
- 依存関係のインストール :
pip install -r requirements.txt
- ルートディレクトリからインストールコマンドを実行します。
python pip_build.py --install
Keras Core は TensorFlow を必ず必要とすることに注意してください、これは特にネストされた Python 構造を処理するために tf.nest を使用するからです。将来的には、すべてのバックエンド・フレームワークをオプションにします。
バックエンドの設定
環境変数 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
後方互換性
Keras Core は (TensorFlow バックエンドを使用するとき) tf.keras の drop-in 置き換えとして動作することを意図しています。既存の tf.keras コードを使用し、keras imports を keras_core に変更し、model.save() への呼び出しが最新の .keras 形式を使用していることを確認すればオーケーです。
貴方の tf.keras モデルがカスタムコンポーネントを含まない場合には、JAX や PyTorch の上で直ちに実行を開始することができます。
カスタムコンポーネント (e.g. カスタム層やカスタム train_step()) を含む場合、通常はそれをバックエンド透過な実装に数分で変換することが可能です。
更に、Keras モデルは、使用しているバックエンドに関係なく、どのような形式のデータセットも消費することができます : 貴方のモデルを既存の tf.data.Dataset や PyTorch DataLoader で訓練することができます。
何故 Keras Core を使うのでしょう?
- 上位な Keras ワークフローを任意のフレームワークの上で実行できます — 各フレームワークの優位点から自在に恩恵を受けることができます、e.g. 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.
以上