gpt4 book ai didi

python - TensorFlow:tf.train.batch 中 dequeue_up_to 比 dequeue_many 慢吗?

转载 作者:行者123 更新时间:2023-11-30 09:52:37 25 4
gpt4 key购买 nike

source code在 GitHub 上,如果我在 train.batch 中使用 allow_smaller_final_batch=True,则对所有内容使用 dequeue_up_to 而不是 dequeue_many批处理。 dequeue_up_to 是否较慢?即使在 TensorFlow 存储库中搜索后,我也无法找到该源代码。我已经跟踪了 dequeue_manydequeue_up_to 函数,直到这个文件 here但我找不到 gen_data_flow_ops 及其函数,并且在存储库中搜索仅返回 gen_data_flow_ops 导入的结果。为什么会这样?

最佳答案

难以跟踪代码从 Python 代码路径到 C++ 操作是 TensorFlow 操作包装技术的一个不幸后果。一般来说,C++ 实现被命名为 FooBarOp,而 Python 最终在生成的代码中调用 foo_bar。

在本例中gen_data_flow_ops._queue_dequeue_up_to_v2是一个自动生成的Python包装器,用于注册QueueDequeueUpToV2 ,这是 C++ DequeueUpToOp 的别名.

为了回答您原来的问题,队列本身不太可能有任何显着的性能差异(出队的 UpTo 版本仅在队列关闭后执行不同的操作)。然而,启用allow_small_batch将从图中删除一些静态形状信息(批量大小),如果下游操作基于静态形状进行优化,这可能会使下游操作变慢一些。

关于python - TensorFlow:tf.train.batch 中 dequeue_up_to 比 dequeue_many 慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42119900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com