为什么我们在Tensorflow中命名变量?

发布于 2021-01-29 15:06:57

在某些地方,我看到了语法,其中用名称初始化变量,有时不使用名称初始化。例如:

# With name
var = tf.Variable(0, name="counter")

# Without
one = tf.constant(1)

命名变量有var "counter"什么意义?

关注者
0
被浏览
99
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    name参数是可选的(可以创建带有或不带有它的变量和常量),并且在程序中使用的变量不依赖于它。名称在两个地方可能会有所帮助:

    当您想要保存或还原变量时
    (可以在计算后将它们保存到二进制文件中)。从文档

    默认情况下,它为每个变量使用Variable.name属性的值

    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_1matrix_2它们是为保存v1v2在文件中。

    TensorBoard中也使用名称来很好地显示边的名称
    。您甚至可以使用相同的范围将它们分组

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看