Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tensorflow中并发的`session.run(…)`调用之间如何共享变量?_Python_Multithreading_Tensorflow - Fatal编程技术网

Python tensorflow中并发的`session.run(…)`调用之间如何共享变量?

Python tensorflow中并发的`session.run(…)`调用之间如何共享变量?,python,multithreading,tensorflow,Python,Multithreading,Tensorflow,如果对同一个会话进行两个并发调用,sess.run(…),那么如何在tensorflow中并发访问变量 在调用run时,每个调用是否会看到变量的快照,并且在整个调用过程中保持一致?或者他们会看到变量的动态更新,并且只保证每个变量的原子更新 我正在考虑在单独的CPU线程上运行测试集评估,并希望验证它是否与在CPU设备上并行运行推理操作一样简单 我很难弄清楚到底提供了什么保证使会话“线程安全”。在做了一些实验后,似乎每次调用sess.run(…)都确实看到了变量的一致时间点快照 为了测试这一点,我执

如果对同一个会话进行两个并发调用,
sess.run(…)
,那么如何在tensorflow中并发访问变量

在调用
run
时,每个调用是否会看到变量的快照,并且在整个调用过程中保持一致?或者他们会看到变量的动态更新,并且只保证每个变量的原子更新

我正在考虑在单独的CPU线程上运行测试集评估,并希望验证它是否与在CPU设备上并行运行推理操作一样简单


我很难弄清楚到底提供了什么保证使会话“线程安全”。

在做了一些实验后,似乎每次调用
sess.run(…)
都确实看到了变量的一致时间点快照


为了测试这一点,我执行了两个大的矩阵乘法运算(每个运算大约需要10秒完成),并在之前、之间和之后更新了一个独立的因变量。在另一个线程中,我每隔1/10秒抓取并打印一次该变量,以查看它是否在第一个线程仍在运行的情况下拾取操作之间发生的更改。没有,我只看到了它的初始值和最终值。因此,我得出结论,变量更改仅在运行结束时对
sess.run(…)
的特定调用之外可见。

知道这一点非常好,因为我看不到大量关于
sess.run
作为线程安全的信息。