TensorFlowはkerasにさらに何を提供しますか?


16

kerasはTensorFlowの高レベルのインターフェイスとして機能することを知っています。

しかし、kerasは独自に多くの機能(データ入力、モデル作成、トレーニング、評価)を実行できるように思えます。

さらに、TensorFlowの機能の一部は、kerasに直接移植できます(たとえば、kerasでtfメトリックまたは損失関数を使用することができます)。

私の質問は、TensorFlowはケラでは再現できないものを提供していますか?

回答:


15

ディープラーニングフレームワークは、2つの抽象化レベルで動作します。

  • 下位レベル:Tensorflow、MXNet、Theano、PyTorchなどのフレームワークが存在する場所です。これは、一般化された行列-行列乗算のような数学的演算と、畳み込み演算のようなニューラルネットワークプリミティブが実装されるレベルです。
  • より高いレベル:Kerasのようなフレームワークが置かれる場所です。このレベルでは、下位レベルのプリミティブを使用して、レイヤーやモデルのようなニューラルネットワークの抽象化を実装します。通常、このレベルでは、モデルの保存やモデルトレーニングなどの他の便利なAPIも実装されます。

KerasとTensorFlowは、抽象化のレベルが異なるため、比較できません。また、この機会にKerasの使用経験を共有したいと思います。

  • Kerasが基本的なディープラーニング作業にのみ有用であることには同意しません。Kerasは美しく書かれたAPIです。APIの機能的な性質は、完全にあなたを助け、よりエキゾチックなアプリケーションに邪魔をしません。Kerasは、低レベルのフレームワークへのアクセスをブロックしません。
  • Kerasは、より読みやすく簡潔なコードになります。
  • KerasモデルのSerialization / Deserialization API、コールバック、およびPythonジェネレーターを使用したデータストリーミングは非常に成熟しています。
  • Kerasは、TensorFlowの公式の高レベル抽象化として宣言されています。

9

TensorFlowをケラのバックエンドとして使用する場合、それらはほぼ同じ機能を共有します。keras.backendあなたのアクセスTensorFlow機能、経由しながら、tf.kerasあなたはTensorFlowて全体API kerasへのアクセス権を持っています。

これが事実であるため、ケラスに固執することをお勧めします。何かが欠落している場合(メトリックまたは損失関数など)、TensorFlowを介してインポートできます。


5

あなたが言うKerasにはすべての機能が含まれていますが、すぐに使えるのはCPUだけです。TensorFlowやCNTK(個人的には好み)などのバックエンドを接続することにより、一部のMLワークロード、特にDLワークロードを大幅に加速できるGPUのパワーを解き放ちます。個別のGPUがない場合、利点は最小限です。

実際には、ほとんどの場合、バックエンドを設定してそれを忘れ、Keras内で完全に動作し、バックエンドを別のものと交換してパフォーマンスを比較することもできます。そのため、下位レベルで直接コーディングしたい場合を除き、TFの詳細を学ぶ必要はありません。


5

TensorFlowは一般的なKerasよりも低レベルのライブラリであるため、柔軟性が向上し、パフォーマンスが向上することがわかります(比較的マイナーではありますが、コードの記述方法に大きく依存します)。新しいタイプのニューラルネットワークを研究または開発している場合、TensorFlowの知識は非常に役立ちます。それ以外では、TeraFlowがバックエンドとして使用されている場合、TensorFlowがどのように機能するかを理解することはまだ役に立つかもしれませんが、Kerasでうまくいくはずです。

しかし、少し前に、KerasとTensorFlowがより統合され、生活がずっと楽になることを読みました。

明らかにこれは私の個人的な見解に過ぎません。したがって、あなたがあなた自身の読書をすることができるように、いくつかの余分な記事を紹介したいと思います。 Kaggleに関するこの議論では、議論の概要と、それをいつ使用するかについて説明します。このトピックに関する中程度の投稿


5

すべての初心者がこのクエリを持っています。Kerasは、データ入力、モデル作成、トレーニング、評価などの基本的な機能を少ないコード行で解決するようです。

しかし、その後MLモデルの開発をゼロから始めると、多くの数学をNNにプログラミングできることに気付き、tensorflowライブラリは多くの機能と制御を提供し、これらの概念を実用的にします。学習の数学的側面は、tfを使用して作成されたNNを使用して簡単に視覚化および作成できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.