GitHubのsource codeでは、allow_smaller_final_batch=True
をtrain.batch
に入力すると、すべてのバッチでdequeue_many
の代わりにdequeue_up_to
が使用されます。 dequeue_up_to
は遅いですか?私はTensorFlowリポジトリで検索した後も、何とかこのソースコードを見つけることができません。 dequeue_many
とdequeue_up_to
の機能をこのファイルhereまでトレースしましたが、gen_data_flow_ops
とその機能が見つかりません。また、レポの検索ではgen_data_flow_ops
の結果が返されます。これはなぜですか?TensorFlow:dequeue_up_toはtf.train.batchのdequeue_manyよりも遅いですか?
0
A
答えて
1
難易度コードをトレースするPythonコードからC++へのパススルーは、TensorFlowのopラッピングテクニックの不幸な結果です。一般的に、C++の実装はFooBarOpと呼ばれ、Pythonは生成されたコードでfoo_barを呼び出します。
この場合、gen_data_flow_ops._queue_dequeue_up_to_v2は、QueueDequeueUpToV2の登録のための自動的に生成されたPythonラッパーです。これはC++ DequeueUpToOpのエイリアスです。
元の質問に答えるために、キュー自体と大きなパフォーマンス差はありません(アップデートのデキューのバージョンでは、キューが閉じられた後に何かが異なります)。 allow_small_batch
を有効にすると、スタティックシェイプの情報がグラフから削除されます(バッチサイズ)。スタティックシェイプをベースに最適化すると、いくつかのopsダウンストリームが遅くなることが考えられます。
関連する問題
- 1. tf.train.batch - dequeue_many操作からアイテムを取得する
- 2. kerasはsklearnよりも遅いのはなぜですか?
- 3. モバイルでのAjaxリクエストはデスクトップリクエストよりも遅いですか?
- 4. list()、dict()、tuple()が[]、{}、()よりも遅いのはなぜですか?
- 5. なぜsparkはまだmysqlよりも遅いのですか?
- 6. ローカルメモリはCUDAの共有メモリよりも遅いですか?
- 7. Agがgrepよりも遅いのはなぜですか?
- 8. SQL 'LIKE BINARY'は、普通の 'LIKE'よりも遅いですか?
- 9. PLINQがforループよりも遅いのはなぜですか?
- 10. SQLiteの "Insert or Replace"は "Insert"よりも遅いですか?
- 11. なぜcollections.dequeはcollections.defaultdictよりも遅いのですか?
- 12. 固有ベクトルの乗算はcblasよりも遅いですか?
- 13. なぜfp除算は逆数よりも遅く、積算よりも遅い
- 14. ジェンキンススレーブジェンキンスマスターよりも遅い
- 15. シングルスレッドよりも遅いPythonでのマルチプロセッシング
- 16. SQLite:ネイティブよりもかなり遅いですか?ここ
- 17. SwiftはCおよびPythonコードよりも1000倍も遅いですか?
- 18. Drupal 7はDrupal 6よりも遅いですか?
- 19. 分割は乗算よりも遅いですか?
- 20. Gmail API messages.modifyはIMAPよりも40倍遅いですか?
- 21. JNAライブラリはロボットクラスよりもスクリーンショットが遅いですか?
- 22. Kotlin i.inc()はi ++よりも10倍遅いですか?
- 23. ZeroMQはboost asioよりも遅いですか?
- 24. cudamallocはcudamemcpyよりも遅いですか?
- 25. EC2は共有ホストよりも遅いですか?
- 26. スレッドマージソートはシリアル実装よりも遅い
- 27. CL_MEM_ALLOC_HOST_PTRはCL_MEM_USE_HOST_PTRよりも遅い
- 28. マルチスレッドはシングルスレッドよりも遅い
- 29. FSGetCatalogInfoBulk()がHFSよりもAPFSで遅い+
- 30. なぜnumpy.apply_along_axisがPythonループよりも遅いようですか?