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])