ホーム » Keras » Keras : バックエンド

Keras : バックエンド

Keras : バックエンド(翻訳/要約)

* 本ページは、Keras 本家サイトの Keras : Backends の簡単な要約です。

 

“バックエンド” とは何か?

Keras はモデル-レベルのライブラリで、深層学習モデルの開発のための高レベルなビルディング・ブロックを提供します。それ自体はテンソル積、畳み込み等々の低レベルな操作は処理しません。代わりに、それを行なう、Keras の “バックエンド・エンジン” としてサービスを提供する、特化され良く最適化されたテンソル操作ライブラリに頼ります。一つの単一のテンソルライブラリを選択して Keras の実装をそのライブラリに結びつける代わりに、Keras は問題をモジュール化の方法で扱い、幾つかの異なるバックエンド・エンジンが Keras にシームレスにプラグインできます。

現時点では、Keras は利用可能な2つのバックエンド実装を持ちます: Theano バックエンドと TensorFlow バックエンドです。

  • Theano は Université de Montréal の LISA/MILA Lab により開発された、オープンソースのシンボリック・テンソル操作フレームワークです。
  • TensorFlow は Google, Inc により開発された、オープンソースのシンボリック・テンソル操作フレームワークです。
 

一つのバックエンドから他の一つに切り替える

Keras を少なくとも一度実行したのであれば、Keras configuration ファイルを以下で見つけるでしょう :

~/.keras/keras.json

もしないのであれば、それを作成できます。

それはおそらくはこのようなものです :

{"epsilon": 1e-07, "floatx": "float32", "backend": "theano"}

単純に backend フィールドを “theano” か “tensorflow” に変更すると、次に任意の Keras コードを実行する時に Keras は新しい configurationi を使用します。

環境変数 KERAS_BACKEND を定義することも可能で、これは config ファイルで定義されたものをオーバーライドします :

KERAS_BACKEND=tensorflow python -c "from keras import backend; print backend._BACKEND"
Using TensorFlow backend.
tensorflow
 

抽象 Keras バックエンドを使用して新しいコードを書く

もし貴方が書く Keras モジュールを Theano と TensorFlow の両者に互換であるようにしないのであれば、抽象 Keras バックエンド API を通してそれらを書かなければなりません。ここでそのイントロを示します。

バックエンド・モジュールを次で import できます:

from keras import backend as K

下のコードは入力プレースホルダーをインスタンス化します。これは tf.placeholder() または T.matrix(), T.tensor3(), 等と等価です。(訳注: 前者は tensorflow プレースホルダー、後者は Theano のシンボリック変数宣言。)

input = K.placeholder(shape=(2, 4, 5))
# also works:
input = K.placeholder(shape=(None, 4, 5))
# also works:
input = K.placeholder(ndim=3)

下のコードは共有変数をインスタンス化しています。tf.variable() または theano.shared() と等価です。

val = np.random.random((3, 4, 5))
var = K.variable(value=val)

# all-zeros variable:
var = K.zeros(shape=(3, 4, 5))
# all-ones:
var = K.ones(shape=(3, 4, 5))

必要な大部分のテンソル演算は TensorFlow か Theano の中にいるように行なわれます :

a = b + c * K.abs(d)
c = K.dot(a, K.transpose(b))
a = K.sum(b, axis=2)
a = K.softmax(b)
a = concatenate([b, c], axis=-1)
# etc...

より詳細は、keras/backend/theano_backend.py と keras/backend/tensorflow_backend.py のコード参照。

 

以上

AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com