Github: https://github.com/keras-team/keras
ケラス:人間のための深い学習
あなたはKerasを見つけました。
Kerasは、Pythonで書かれた、 TensorFlow 、 CNTK 、 Theanoの上で実行可能な高水準のニューラルネットワークAPIです。 これは、迅速な実験を可能にすることに重点を置いて開発されました。 可能な限り遅れてアイデアから結果に行くことができることは、良い研究をする上で重要です。
深い学習ライブラリが必要な場合は、Kerasを使用します。
- 簡単で素早いプロトタイプ作成が可能(ユーザーフレンドリー、モジュール性、拡張性)
- 畳み込みネットワークと再帰ネットワークの両方、およびこれら2つの組み合わせをサポートします。
- CPUとGPUでシームレスに実行されます。
KerasはPython 2.7-3.6と互換性があります。
ガイダンスの原則
-
ユーザーフレンドリー。 Kerasは、人間ではなく機械向けに設計されたAPIです。 ユーザーエクスペリエンスをフロントとセンターに置きます。 Kerasは、コグニティブロードを軽減するためのベストプラクティスに従い、一貫性のある&シンプルなAPIを提供し、一般的な使用事例に必要なユーザーアクションの数を最小限に抑え、ユーザーエラー時に明確で実用的なフィードバックを提供します。
-
モジュール性。 モデルとは、可能な限り制限をかけずに接続できるスタンドアロンの完全設定可能なモジュールのシーケンスまたはグラフとして理解されています。 特に、ニューラル・レイヤー、コスト関数、オプティマイザ、初期化スキーム、アクティベーション・ファンクション、正規化スキームはすべて、新しいモデルを作成するために組み合わせることができるスタンドアロン・モジュールです。
-
容易な拡張性。 新しいモジュールは簡単に追加できます(新しいクラスと関数として)。既存のモジュールは十分な例を提供します。 新しいモジュールを簡単に作成できるようにするために、表現力を最大限に発揮させ、高度な研究に適したKerasを作成します。
-
Pythonで作業する 宣言形式の別々のモデル構成ファイルはありません。 モデルはPythonコードで記述されています。これは、コンパクトでデバッグが容易で、拡張性が容易です。
はじめに:Kerasまで30秒
Kerasのコアデータ構造はモデルであり、レイヤーを編成する方法です。 最も単純なタイプのモデルは、 Sequential
のレイヤーであるSequential
モデルです。 より複雑なアーキテクチャの場合は、 Keras関数APIを使用する必要があります 。これにより、レイヤーの任意のグラフを作成できます。
Sequential
モデルは次のとおりです。
from keras.models import Sequential
model = Sequential()
レイヤーを積み重ねるのは.add()
同じ.add()
簡単です:
from keras.layers import Dense
model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))
モデルの見栄えが良ければ、 .compile()
を使用して学習プロセスを設定します。
model.compile(loss='categorical_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
必要に応じて、オプティマイザをさらに構成することができます。 Kerasのコア原則は、ユーザーが必要なときに完全にコントロールできるようにしながら(ソースコードの簡単な拡張性を実現する究極のコントロール)、合理的に単純なものにすることです。
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))
トレーニングデータをバッチで繰り返し処理できるようになりました。
# x_train and y_train are Numpy arrays --just like in the Scikit-Learn API.
model.fit(x_train, y_train, epochs=5, batch_size=32)
あるいは、バッチを手動でモデルに供給することもできます。
model.train_on_batch(x_batch, y_batch)
パフォーマンスを1行で評価する:
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)
新しいデータに対して予測を生成する:
classes = model.predict(x_test, batch_size=128)
質問応答システム、画像分類モデル、神経チューリングマシン、またはその他のモデルを構築することは、まさに高速です。 深い学習の背後にあるアイデアはシンプルなので、その実装はなぜ痛みを伴うのでしょうか?
Kerasに関する詳細なチュートリアルについては、次の記事を参照してください。
リポジトリのexamplesフォルダには、より高度なモデルがあります:メモリネットワークでの質問応答、積み上げLSTMによるテキスト生成など
インストール
Kerasをインストールする前に、TensorFlow、Theano、CNTKのいずれかのバックエンドエンジンをインストールしてください。 TensorFlowバックエンドをお勧めします。
次のオプションの依存関係をインストールすることも考えられます 。
- cuDNN (GPUでKerasを実行する予定の場合に推奨)。
- HDF5とh5py ( Kerasモデルをディスクに保存する予定がある場合は必須)。
- graphvizとpydot ( 視覚化ユーティリティによってモデルグラフをプロットするために使用されます)。
その後、Keras自体をインストールすることができます。 Kerasをインストールする方法は2つあります。
- PyPIからKerasをインストールする(推奨):
sudo pip install keras
virtualenvを使用している場合は、sudoを使わないでください。
pip install keras
- あるいは、GitHubソースからKerasをインストールしてください:
まず、 git
を使ってKerasをクローンします。
git clone https://github.com/keras-team/keras.git
次に、Kerasフォルダにcd
して、installコマンドを実行します。
cd keras
sudo python setup.py install
TensorFlowとは異なるバックエンドを使用する
既定では、Kerasはテンソル操作ライブラリとしてTensorFlowを使用します。 Kerasバックエンドを設定するには、以下の手順に従ってください 。
サポート
質問をして開発ディスカッションに参加することができます:
- Keras Googleグループで
- Keras Slackチャンネルで 。 このリンクを使用して、チャンネルへの招待状をリクエストしてください。
また、 GitHubの問題に バグレポートや機能リクエスト (のみ)を投稿することもできます 。 まずガイドラインを必ず読んでください 。
なぜこの名前、ケラス?
Keras(κέρας)はギリシャ語の角を意味します。 オデッセイで最初に見いだされた古代ギリシャ語とラテン語文学の文学的イメージを参照しています。夢の精神( Oneiroi 、単数形Oneiros )は、偽のビジョンを持つ人を欺く者、象牙の門を通って地球に到着する人、そして未来を告げる者、ホーンの門を通って到着する者。 κέρας(ホーン)/κραίνω(遂行)、ἐλέφας(アイボリー)/ἐλεφαίρομαι(欺瞞)という言葉の遊びです。
Kerasは当初、プロジェクトONEIROS(オープンエンド型神経電子知能ロボットオペレーティングシステム)の研究努力の一環として開発されました。
「Oneiroiは、私たちが解明していることを超えています。誰が話していることを確かめることができるのでしょうか?彫られた角を通って出て来るものは、それらの後ろに真実を持って、それらを見る人のために達成される。 ホーマー、オデッセイ19. 562 ff(Shewring translation)。