梯度下降线程在Tensorflow中安全吗?

2024-05-20 18:31:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Tensorflow来实现一个强化学习算法,我想让学习步骤发生在另一个线程上,这样代理就可以更顺利地与环境交互。(这类似于我们在一个线程中执行梯度下降,在另一个线程中进行推断)这让我想到Tensorflow是否是线程安全的?我应该在调用sess.run时获得锁吗?你知道吗

我做了一些测试,没有发现任何错误时,我不使用一个储物柜。This Q&A表示相同的结果sess.run是线程安全的。但是,AdamOptimizer document有一个use_locking选项,这似乎表明优化不是线程安全的。你知道吗

我现在很困惑:这种情况下我必须用锁吗?如果答案是肯定的,那么我应该怎么做:设置use_locking=True或者在调用sess.run时使用threading.Lock?你知道吗


Tags: run算法locking代理环境usetensorflow错误