【问题标题】:Can I safely do inference from another thread while training the network?我可以在训练网络时安全地从另一个线程进行推理吗?
【发布时间】:2023-03-09 11:42:01
【问题描述】:

我有几个线程可以更新我的网络权重或对其进行推理。我为优化器使用use_locking 参数来防止权重的并发更新。

推理应始终使用最近且重要的是一致的权重版本。换句话说,我想防止使用权重矩阵进行推理,其中一些元素已经更新但其他元素没有。

这是有保证的吗?如果没有,我该如何确保这一点?似乎没有tf.Lock 或类似名称。

【问题讨论】:

    标签: python multithreading thread-safety locking tensorflow


    【解决方案1】:

    您的推理调用是否需要使用最新版本的图表?如果您不介意一些延迟,您可以通过在训练线程上调用 sess.graph.as_graph_def 来制作图的副本,然后定期使用该 graph_def 在推理线程上创建一个新会话。

    【讨论】:

    • 我是否从您的回答中得出正确的结论,即在训练同一图表时进行推理可能会导致使用部分更新的变量?推理应使用权重的最新完全更新版本。
    猜你喜欢
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    相关资源
    最近更新 更多