2
TensorFlow 2がTensorFlow 1よりもはるかに遅いのはなぜですか?
Pytorchに切り替える理由として多くのユーザーから引用されていますが、私は熱心な実行のために最も重要な実用的な品質、速度を犠牲にする理由と説明をまだ見つけていません。 以下は、TF1とTF2を比較したコードベンチマークのパフォーマンスです。TF1は、47%から276%速く実行されています。 私の質問は、グラフまたはハードウェアレベルで、このような大幅な速度低下をもたらすのは何ですか? 詳細な答えを探しています-すでに幅広い概念に精通しています。関連Git 仕様:CUDA 10.0.130、cuDNN 7.4.2、Python 3.7.4、Windows 10、GTX 1070 ベンチマーク結果: 更新:以下のコードに従ってEager Executionを無効にしても効果はありません。ただし、動作に一貫性がありません。グラフモードで実行するとかなり役立つ場合もあれば、Eagerに比べて実行速度が遅い場合もあります。 TF開発者はどこにも現れないので、私はこの問題を自分で調査します。リンクされたGithubの問題の進捗状況を追跡できます。 更新2:説明に沿って、共有する大量の実験結果。今日行われるべきです。 ベンチマークコード: # use tensorflow.keras... to benchmark tf.keras; used GPU for all above benchmarks from keras.layers import Input, Dense, LSTM, Bidirectional, Conv1D from keras.layers import Flatten, Dropout from keras.models import Model from keras.optimizers import Adam import …