Python-deep-learning-libraries-and-frameworks

提供:Dev Guides
移動先:案内検索

ライブラリとフレームワーク

この章では、ディープラーニングをさまざまなライブラリとフレームワークに関連付けます。

深層学習とテアノ

ディープニューラルネットワークのコーディングを開始する場合は、Theano、TensorFlow、Keras、PyTorchなどのさまざまなフレームワークがどのように機能するかを把握することをお勧めします。

Theanoは、マシン上ですばやくトレーニングするディープネットを構築するための一連の関数を提供するpythonライブラリです。

Theanoは、深いネットの先駆者であるYoshua Bengioのリーダーシップの下、カナダのモントリオール大学で開発されました。

Theanoを使用すると、数値の長方形配列であるベクトルと行列を使用して数式を定義および評価できます。

技術的に言えば、ニューラルネットと入力データの両方を行列として表現し、すべての標準的なネット操作を行列操作として再定義できます。 コンピューターは行列演算を非常に迅速に実行できるため、これは重要です。

複数の行列値を並列処理できます。この基本構造でニューラルネットを構築する場合、GPUを備えた単一のマシンを使用して、妥当な時間枠で巨大なネットをトレーニングできます。

ただし、Theanoを使用する場合は、徹底的にディープネットを構築する必要があります。 ライブラリは、特定のタイプのディープネットを作成するための完全な機能を提供しません。

代わりに、モデル、レイヤー、アクティベーション、トレーニング方法、過剰適合を防ぐための特別な方法など、ディープネットのあらゆる側面をコーディングする必要があります。

ただし、Theanoを使用すると、ベクトル化された関数の上に実装を構築できるため、高度に最適化されたソリューションが提供されます。

Theanoの機能を拡張するライブラリは他にもたくさんあります。 TensorFlowとKerasは、Theanoをバックエンドとして使用できます。

TensorFlowを使用した深層学習

Googles TensorFlowはPythonライブラリです。 このライブラリは、商用グレードの深層学習アプリケーションの構築に最適です。

TensorFlowは、Google Brain Projectの一部であった別のライブラリDistBelief V2から生まれました。 このライブラリは、研究モデルを商用グレードのアプリケーションに適用できるように、機械学習の移植性を拡張することを目的としています。

Theanoライブラリと同様に、TensorFlowは計算グラフに基づいており、ノードは永続的なデータまたは数学演算を表し、エッジはノード間のデータのフローを表します。これは多次元配列またはテンソルです。したがって、TensorFlowという名前

操作または操作のセットからの出力は、次への入力として供給されます。

TensorFlowはニューラルネットワーク用に設計されていますが、計算をデータフローグラフとしてモデル化できる他のネットでもうまく機能します。

TensorFlowは、共通および部分式の除去、自動微分、共有変数およびシンボリック変数など、Theanoのいくつかの機能も使用します。

たたみ込みネット、オートエンコーダー、RNTN、RNN、RBM、DBM/MLPなどのような、さまざまなタイプのディープネットをTensorFlowを使用して構築できます。

ただし、TensorFlowのハイパーパラメーター構成はサポートされていません。この機能には、Kerasを使用できます。

ディープラーニングとKeras

Kerasは、ディープラーニングモデルを開発および評価するための強力で使いやすいPythonライブラリです。

レイヤーごとにネットを構築できるミニマルなデザインです。それを訓練し、実行します。

効率的な数値計算ライブラリTheanoとTensorFlowをラップし、数行の短いコードでニューラルネットワークモデルを定義およびトレーニングできます。

これは、高度なニューラルネットワークAPIであり、ディープラーニングと人工知能を幅広く活用するのに役立ちます。 TensorFlow、Theanoなどを含む多数の低レベルライブラリの上で実行されます。 Kerasコードは移植可能です。コードを変更することなく、TheanoまたはTensorFlowをバックエンドとして使用して、Kerasにニューラルネットワークを実装できます。