首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流量操作时间波动

流量操作时间波动
EN

Stack Overflow用户
提问于 2018-05-03 06:57:24
回答 1查看 354关注 0票数 0

我想测量我的会话运行推理操作所需的时间。我用time来测量它,如下所示

代码语言:javascript
复制
start = time.clock()
sess.run([ops['pred']], feed_dict=feed_dict)
end = time.clock()
elapsed_time_batch = end-start

我在相同的数据集和平均值上多次这样做。问题是-我得到了非常不同的平均时间测量( 1.7ms比1.2ms )。即使它的“仅仅”0.5ms的差异,这是一个很大的相对差异(0.5vs1.7是约30%)。

我尝试为会话设置一些GPU选项,如下所示:

代码语言:javascript
复制
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.95
config.gpu_options.allow_growth = False
config.allow_soft_placement = True
config.log_device_placement = False
if limit_gpu:
        gpu_idx = str(gpu_idx)
        os.environ["CUDA_VISIBLE_DEVICES"] = gpu_idx
else:
        os.environ["CUDA_VISIBLE_DEVICES"] = "0, 1"
sess = tf.Session(config=config)

但这并没有解决问题。什么可以是这个变化的原因,我如何稳定它,以获得一个更可靠的时间阅读。

我运行在一个带有4个GPU的linux服务器上(在这次测试中,我只限于1 GPU--一个Titan Xp)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-06 11:14:16

我最终想出了答案,所以我在这里为将来可能遇到这种情况的人张贴答案。

在这里,函数time.clock()似乎不是正确的选择(详见this答案)。

解决方案是使用timeit.timer()函数:

代码语言:javascript
复制
from timeit import default_timer as timer
start = timer()
sess.run([ops['pred']], feed_dict=feed_dict)
end = timer()
elapsed_time_batch = end-start
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50148718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档