0
是否有一种很好的方式来区分TensorFlow中张量,变量和操作之间的编程方式?例如,当重新加载模型和tf.local_variables()
可以同时具有张量和变量时,就会出现这种情况。如果你尝试初始化一个张量,你会得到一个错误。以编程方式区分TensorFlow中的张量,变量和Ops
下面是我目前的黑客来解决这个问题的一些代码,但有没有更好的方法?部分问题是,变量,张量等的类型是,例如,tensorflow.python.ops.variables.Variable
,但似乎tensorflow.python
不再可用(我认为它是在一些早期版本?)。这个例子只显示变量与张量,但我还需要区分ops和张量,并且必须使用类似的hacks。
import tensorflow as tf
vars_list = [tf.Variable(0), tf.constant(0)]
# init = tf.variables_initializer(vars_list) # -> AttributeError: 'Tensor' object has no attribute 'initializer'
var_type = type(tf.Variable(0))
init = tf.variables_initializer([v for v in vars_list if type(v) == var_type])