gpt4 book ai didi

python - TensorFlow GPU 历元优化?

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

所以这段代码可以工作,它只给我带来了 CPU 2 倍的提升,但我认为它可以更快。我认为问题归结为这个领域......

for i in tqdm(range(epochs), ascii=True):
sess.run(train_step, feed_dict={x: train, y_:labels})

我认为发生的情况是,每个时期,我们都会返回 CPU 以获取有关下一步要做什么的信息(for 循环),然后 for 循环会推送回 GPU。现在 GPU 可以将整个数据集和更多数据放入内存中。

这可能吗?如果可能的话,如何实现?只是让它在 GPU 上不断地处理 1000 个 epoch,而不返回到 CPU 报告其状态。或者也许控制它报告状态的频率。最好是在 GPU 上进行 1000 个 epoch 计算,然后查看我的训练与验证,然后再次进行计算。但在每个 epoch 之间这样做并没有多大帮助。

谢谢

~大卫

最佳答案

session.run 的开销约为 100 usec,因此如果执行 10k 步,此开销会增加大约 1 秒。如果这很重要,那么您正在执行许多小迭代,并且会在其他地方产生额外的开销。 IE 中,GPU 内核启动开销比 CPU 大 5 倍(5 usec vs 1 usec)。

使用 feed_dict 可能是一个更大的问题,您可以通过使用队列/输入管道来加快速度。

此外,了解您将时间花在哪里的一个有效方法是进行分析。IE,要找出 for 循环造成的时间比例,您可以按如下方式执行 cProfile。

python -m cProfile -o timing.prof myscript.py
snakeviz timing.prof

要了解时间在 TensorFlow run 内部的去向,您可以按照 here 的说明进行时间线分析。

关于python - TensorFlow GPU 历元优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955736/

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