gpt4 book ai didi

Tensorflow:tf.get_variable 如何工作?

转载 作者:行者123 更新时间:2023-12-03 14:41:14 25 4
gpt4 key购买 nike

我读过 tf.get_variable从这里 question以及 tensorflow 网站上提供的文档中的一些内容。但是,我仍然不清楚,无法在网上找到答案。
怎么样tf.get_variable工作?例如:

var1 = tf.Variable(3.,dtype=float64)
var2 = tf.get_variable("var1",[],dtype=tf.float64)
是否意味着 var2 另一个 初始化类似于 的变量var1 ?或者是 var2 的别名var1 (我试过了,似乎没有)?
怎么样 var1 var2 有关的?
当我们得到的变量实际上并不存在时,如何构造变量?

最佳答案

tf.get_variable(name)创建一个名为 name 的新变量(或添加 _ 如果 name 已存在于当前范围内)在 tensorflow 图中。
在您的示例中,您正在创建一个 变量名为 var1 .
中该变量的名称图不是** var1 ,但是是 Variable:0 .
您定义的每个节点都有自己的名称,您可以指定或让 tensorflow 给出一个默认的(并且总是不同的)名称。您可以看到 name访问 name 的值python变量的属性。 (即 print(var1.name) )。
在你的第二行,你定义了一个 Python 变量 var2谁的名字在 tensorflow 图中 var1 .
剧本

import tensorflow as tf

var1 = tf.Variable(3.,dtype=tf.float64)
print(var1.name)
var2 = tf.get_variable("var1",[],dtype=tf.float64)
print(var2.name)
实际上打印:
Variable:0
var1:0
相反,如果您想定义一个名为 var1 的变量(节点)在 tensorflow 图中,然后获取对该节点的引用,您 不能 只需使用 tf.get_variable("var1") ,因为它将创建一个新的不同变量 valled var1_1 .
这个脚本
var1 = tf.Variable(3.,dtype=tf.float64, name="var1")
print(var1.name)
var2 = tf.get_variable("var1",[],dtype=tf.float64)
print(var2.name)
打印:
var1:0
var1_1:0
如果要创建对节点的引用 var1 , 你先:
  • 必须更换tf.Variabletf.get_variable .使用 tf.Variable 创建的变量不能共享,而后者可以。
  • 知乎scopevar1是并允许 reuse在声明引用时属于该范围。

  • 查看代码是更好的理解方式
    import tensorflow as tf

    #var1 = tf.Variable(3.,dtype=tf.float64, name="var1")
    var1 = tf.get_variable(initializer=tf.constant_initializer(3.), dtype=tf.float64, name="var1", shape=())
    current_scope = tf.contrib.framework.get_name_scope()
    print(var1.name)
    with tf.variable_scope(current_scope, reuse=True):
    var2 = tf.get_variable("var1",[],dtype=tf.float64)
    print(var2.name)
    输出:
    var1:0
    var1:0

    关于Tensorflow:tf.get_variable 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45074049/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com