Keras: TensorFlow の高レベル API
Keras は TensorFlow プラットフォームの高レベル API です。機械学習(ML)問題を解決するためのアプローチしやすく生産性の高いインターフェースを、最新のディープラーニングに焦点を当てて提供しています。Keras は、データ処理からハイパーパラメータのチューニング、デプロイまで、機械学習ワークフローの各ステップに対応しています。高速実験を可能にすることに焦点を当てて開発された言語です。
Keras を使用すると、TensorFlow の拡張性とクロスプラットフォーム機能に完全にアクセスできます。Keras はTPU Pod や大規模な GPU クラスタで実行でき、Keras モデルをブラウザやモバイルデバイスで実行するためにエクスポートすることができます。また、ウェブ API を使って Keras モデルを配信することも可能です。
Keras は、以下の目標を達成することで、認知的負荷を押さえられるように設計されています。
単純で一貫性のあるインターフェースを提供する。
一般的なユースケースに必要なアクションの数を最小限に抑える。
明確で対応可能なエラーメッセージを提供する。
複雑さの段階的な開示の原理に従う。取りかかりやすく、作業を進めながら学習することで、高度なワークフローを完成させられます。
明白で読み取りやすいコードを書けるようにする。
Keras の対象者
簡単に言えば、すべての TensorFlow ユーザーにデフォルトで Keras API を使用することをお勧めします。エンジニアや研究者、ML 専門家など、役職に関係なく Keras を使い始めるべきと言えます。
低レベルの TensorFlow Core API が必要となるユースケースはいくつかありますが(TensorFlow 上にツールを構築する、独自の高性能プラットフォームを開発するなど)、ユースケースが Core API アプリケーションに該当しない場合は、Keras を優先することをお勧めします。
Keras API コンポーネント
Keras の基本データ構造はレイヤーとモデルです。レイヤーは単純な入力/出力変換で、モデルはレイヤーの有向非巡回グラフ(DAG)です。
レイヤー
tf.keras.layers.Layer
クラスは、Keras の基本的な抽象です。Layer
は状態(重み)といくつかの計算(code2}tf.keras.layers.Layer.call メソッド内に定義)をカプセル化します。
レイヤーが作る重みはトレーニング可能である場合とトレーニング不可能である場合があります。レイヤーは繰り返し構成可能です。レイヤーインスタンスを別のレイヤーの属性として割り当てる場合、外側のレイヤーは内側のレイヤーが作成する重みを追跡し始めます。
また、レイヤーを使用して、正規化やテキストのベクトル化といったデータ前処理タスクを処理することもできます。前処理レイヤーはトレーニング中かその後にモデルに直接含めることができるため、モデルの移植が可能です。
モデル
モデルは、レイヤーをひとまとめにしてデータでトレーニングできるオブジェクトです。
最も単純なモデルのタイプは Sequential
モデルで、レイヤーの直線的なスタックです。より複雑なアーキテクチャでは、レイヤーの任意のグラフを構築する Keras functional API を使用するか、サブクラス化によってモデルを新規作成できます。
tf.keras.Model
クラスには、トレーニングと評価メソッドが組み込まれています。
tf.keras.Model.fit
: 一定したエポック数でモデルをトレーニングします。tf.keras.Model.predict
: 入力サンプルに対して出力予測を生成します。tf.keras.Model.evaluate
: モデルの損失と指標の値を返します。tf.keras.Model.compile
メソッドで構成されます。
これらのメソッドによって、以下の組み込みトレーニング機能にアクセスできます。
コールバック。組み込みのコールバックを使用して、早期停止、モデルへのチェックポイントの設定、およびTensorBoard での監視を行えます。また、カスタムコールバックの実装も可能です。
分散トレーニング。トレーニングを複数の GPU、TPU、またはデバイスに簡単に拡張できます。
ステップ融合。
tf.keras.Model.compile
のsteps_per_execution
引数を使用して、単一のtf.function
呼び出しで複数のバッチを処理できます。TPU でのデバイス使用率を大幅に改善します。
fit
の詳しい使用方法については、トレーニングと評価ガイドをご覧ください。組み込みトレーニングと評価ループのカスタマイズ方法については、fit()
の処理をカスタマイズするをご覧ください。
その他の API とツール
Keras には、以下を含む、ディープラーニング向けの API とツールがその他多数備わっています。
利用可能な API の完全なリストについては、Keras API リファレンスをご覧ください。他の Keras プロジェクトとイニシアチブについてさらに詳しく知るには、Keras エコシステムをご覧ください。
次のステップ
TensorFlow で Keras を使い始めるには、以下のトピックをご覧ください。
Keras についてさらに詳しく知るには、keras.io で以下のトピックをご覧ください。
About Keras(Keras について)
Introduction to Keras for Engineers(エンジニア向けの Keras 入門)
Introduction to Keras for Researchers(研究者向けの Keras 入門)
Keras API reference(Keras API リファレンス)
The Keras ecosystem(Keras エコシステム)