2017-09-20 5 views
0

最近、私はTensorFlowの紹介を見ていました。その間、KerasはTensorFlowまたはTheanoをバックエンドで使用できる高水準APIとして登場しました。Kerasに純粋なTensorFlowを使用する理由は何ですか?

私は両方とも一緒に遊んで、純粋なTensorFlowでMNIST LeNet-5を実装しました。その後、Kerasで実装しました。少なくとも私のマシンでは、TensorFlowを直接使用するとパフォーマンスが大幅に向上することはありませんでした。

私の質問は次のとおりです。Kerasの上にTensorFlowを直接使用する利点は何ですか?たぶんそれは規模の問題ですが、私は大規模プロジェクトでパフォーマンスの大幅な向上を見ますか?

答えて

4

KerasはTensorflow(および他のバックエンド)の複雑さを隠すだけです。

フードの状況をより詳細に制御する必要がある場合は、Tensorflowを直接使用することができます(ほとんどすべてを制御でき、実装が効果的に機能することを確認できます)。

モデルを素早くプロトタイプ化して開発したい場合は、Kerasは高速です。トレードオフは、Kerasがあなたのためにたくさんのことをしないので、あなたが少し制御を緩めるということです。例えば、畳み込みレイヤーの変数名/スコープはkeras-layer定義内で固定されているので変更できません(カーネルは常に 'kernel'になり、バイアスは常に 'bias'になります)。

しかし、Tensorflowは最初にグラフを作成して実行するので、KerasやTensorflowで定義されている同じグラフの実行速度は同じです(Kerasはグラフ構造だけを遅くします、つまりPythonコードです)。

+0

ありがとうございました。ケラスではできないものについては何かがありますが、純粋なTensorflowでしかありませんか?深い学習の範囲で一般的なグラフ計算ではありませんか?私はTensorflowに膝を深くする価値があるかどうか、またはKerasと一緒にいればうまくいくかどうか調べることを試みます。 – byt3

関連する問題