tensorflow中的变量问题
问题1
当我们将模型训练好时,可以调用model.trainable_variables
来查看模型训练结果后的变量值,这里简单展示一下,大概长这样:
它以列表的形式返回,列表中的每个元素表示一个变量值,类型是tensorflow.python.ops.resource_variable_ops.ResourceVariable
那么问题来了,上面这个是什么玩意(对象)?
一番查阅资料后,得到如下结论:
-
在tensorflow中,Variable是一个资源,继承自ResourceBase并由ResourceMgr管理
-
ResourceVariable是Variable的实验替代品,旨在清理Variable语义的一些混乱方面.
-
ResourceVariable尚未准备就绪,除非您正在处理Tensorflow实现的深层细节,否则您很可能不关心两者之间的差异.从Tensorflow用户的角度来看,ResourceVariable最终将成为Variable的替代品,几乎没有可观察到的差异.
-
所以现在只使用Variable,它几乎可以肯定你想要的.
了解了它是什么玩意,我们看看这个对象有什么属性,如果你单独打印列表中的一个元素,也就是一个变量
trainable_v.name = sequential/simple_rnn/kernel:0
trainable_v.shape = TensorShape([5, 3])
trainable_v.dtype = tf.float32
trainable_v.numpy() = 一个numpyarray