在tensorflow中,常量变量和非训练变量之间有什么区别?

时间:2016-12-14 19:34:22

标签: tensorflow

根据this answer

  

tf.constant()的值在内存中多次存储。

当你有一个不应该改变价值的大张量时,这为使用张量流常数或不可训练变量提供了一个实际的答案。

然而,我不清楚为什么两者都存在,以及为什么(以及在何种情况下)tf.constant将被复制到内存中。

1 个答案:

答案 0 :(得分:1)

如果您执行W = tf.constant(embedding, name="W"),则嵌入的值会存储两次 - 位于embedding中的numpy侧和W op中的TensorFlow侧。请注意,constant值存储在Graph对象中,该对象未针对大型并行数据传输进行优化(至少在acac487a之前存在性能投诉),同时Variable值存储为优化