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 クラスには、トレーニングと評価メソッドが組み込まれています。

これらのメソッドによって、以下の組み込みトレーニング機能にアクセスできます。

fit の詳しい使用方法については、トレーニングと評価ガイドをご覧ください。組み込みトレーニングと評価ループのカスタマイズ方法については、fit() の処理をカスタマイズするをご覧ください。

その他の API とツール

Keras には、以下を含む、ディープラーニング向けの API とツールがその他多数備わっています。

利用可能な API の完全なリストについては、Keras API リファレンスをご覧ください。他の Keras プロジェクトとイニシアチブについてさらに詳しく知るには、Keras エコシステムをご覧ください。

次のステップ

TensorFlow で Keras を使い始めるには、以下のトピックをご覧ください。

Keras についてさらに詳しく知るには、keras.io で以下のトピックをご覧ください。