【6.1.1】TensorFlow中的name有什么用
在某些地方,我看到了语法,其中变量用name初始化,有时没有name。 例如:
# With name
var = tf.Variable(0, name="counter")
# Without
one = tf.constant(1)
或者:
aa = tf.placeholder(tf.int32, shape=(), name='batch_edge_type_idx')
bb = tf.sparse_placeholder(tf.float32)
那么变量名var和counter有什么区别呢?
name参数是可选的(您可以创建带或不带它的变量和常量),并且您在程序中使用的变量不依赖于它。 name在以下几个方面很有帮助:
1.当您想要保存或恢复变量时
matrix_1 = tf.Variable([[1, 2], [2, 3]], name="v1")
matrix_2 = tf.Variable([[3, 4], [5, 6]], name="v2")
init = tf.initialize_all_variables()
saver = tf.train.Saver()
sess = tf.Session()
sess.run(init)
save_path = saver.save(sess, "/model.ckpt")
sess.close()
matrix_1和matrix_2保存的时候以v1和v2保存
2.在TensorBoard中使用name来很好地显示边的名称(什么意思,不是太理解呀??)
import tensorflow as tf
with tf.name_scope('hidden') as scope:
a = tf.constant(5, name='alpha')
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0), name='weights')
b = tf.Variable(tf.zeros([1]), name='biases')
您可以将Python命名空间和TensorFlow命名空间想象为两个平行线。 TensorFlow空间中的名称实际上是属于任何TensorFlow变量的“真实”属性,而Python空间中的名称只是在脚本运行期间指向TensorFlow变量的临时指针。 这就是为什么在保存和恢复变量时,只使用TensorFlow名称的原因,因为脚本终止后Python命名空间不再存在,但Tensorflow命名空间仍然存在于保存的文件中。
参考资料:
https://blog.csdn.net/xiaohuihui1994/article/details/81022043
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn