繁体   English   中英

如何在 TensorFlow 2 中重置初始化

[英]How to reset initialization in TensorFlow 2

如果我在初始化tf.Variable后尝试更改 TensorFlow 2 中的tf.Variable

import tensorflow as tf
_ = tf.Variable([1])
tf.config.threading.set_inter_op_parallelism_threads(1)

我收到一个错误

运行时错误:初始化后无法修改操作间并行性。

我明白为什么会这样,但它(可能还有其他因素)导致我的测试相互干扰。 例如

def test_model():  # this test
   v = tf.Variable([1])
   ...

def test_threading():  # is breaking this test
   tf.config.threading.set_inter_op_parallelism_threads(1)
   ...

如何重置 TensorFlow 状态以便设置线程?

这可以通过“hacky”方式实现。 但我建议以正确的方式执行此操作(即在开始时设置配置)。

import tensorflow as tf
from tensorflow.python.eager import context

_ = tf.Variable([1])

context._context = None
context._create_context()

tf.config.threading.set_inter_op_parallelism_threads(1)

编辑:一开始就设置配置是什么意思,

import tensorflow as tf
from tensorflow.python.eager import context

tf.config.threading.set_inter_op_parallelism_threads(1)
_ = tf.Variable([1])

但在某些情况下,您不能总是这样做。 仅仅指出在tf中设置配置的传统方法。 因此,如果您的情况不允许您在开始时修复tf.config ,您必须按照上面的解决方案中所示重置您的tf.eager.context

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM