gpt4 book ai didi

tensorflow - tensorflow 中的 tf.variable 与 tf.constant

转载 作者:行者123 更新时间:2023-12-04 15:18:48 25 4
gpt4 key购买 nike

我运行以下代码

 W = tf.Variable(tf.zeros([1, 3]), dtype=tf.float32, name="W")
B = tf.constant([[1, 2, 3]], dtype=tf.float32, name="B")
act = tf.add(W, B)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
sess.run(act)
writer = tf.summary.FileWriter("./graphs", sess.graph)
writer.close()

并用 tensorboard 验证:

enter image description here

让我困惑的是 read操作和之前的操作表示为 (W) .常数 B直接指向 Add操作同时 tf.variable里面有所有这些操作节点。以下是我的问题:
  • 什么是(W)手术?常数 B是一个规则的圆,表示一个常数。椭圆形节点表示操作节点。 (W)似乎没有任何操作,但它用相同的椭圆形节点表示?该节点的工作是什么?
  • Add节点显式读取 (W)带有 read 的节点与常量节点相反的操作 B .为什么是 read变量节点是必需的吗?
  • 最佳答案

    由于缺乏任何中级文档的链接,这是我的 tensorflow 变量的实用概念模型。

    以下,来自
    https://www.tensorflow.org/programmers_guide/graphs#visualizing_your_graph
    似乎至少暗示了您的问题的答案。

    “执行 v = tf.Variable(0) 会向图中添加一个 tf.Operation,该操作将存储在 tf.Session.run 调用之间持续存在的可写张量值。tf.Variable 对象包装此操作,并且 可以是像张量 一样使用,它将读取存储值的当前值。tf.Variable 对象还具有诸如assign 和assign_add 之类的方法,这些方法创建tf.Operation 对象,这些对象在执行时会更新存储值。”

    这来自 https://www.tensorflow.org/programmers_guide/variables

    “在内部,一个 tf.Variable 存储一个持久的张量。特定的操作允许你读取和修改这个张量的值。“

    这来自 http://www.goldsborough.me/tensorflow/ml/ai/python/2017/06/28/20-21-45-a_sweeping_tour_of_tensorflow/

    “变量是包含张量的内存缓冲区。”

    请注意,图节点之间的线必须是张量。 tf.constant(...) 返回一个(类的实例)张量。然而,tf.Variable(...) 返回的不是一个 Tensor 实例,而是一个 Variable 类的实例

    x = tf.Variable(...)
    print(type(x)) # <class 'tensorflow.python.ops.variables.Variable'>
    y = tf.constant(...)
    print(type(y)) # <class 'tensorflow.python.framework.ops.Tensor'>

    要在操作中使用 tf 变量(其参数必须是张量),必须首先将其值“转换”为张量,并且“读取”操作返回变量表示的“隐藏”张量。我相信该值作为 tf.constant (这是一个张量)返回。

    注意 tf.Variable(...) 中的大写 V 和 tf.constant(..) 中的小写 c。一个 tf.Variable(...) 返回一个 tf.Variable 类的实例,所以 tf.Variable(...) 实例化一个类实例,而 read() 是这个类的一个(可视化)方法,它返回一个值。当一个值被赋值给一个变量时,它会修改这个“隐藏的”张量。

    另一方面,至少在概念上,tf.constant(...) 是一个工厂函数,它返回一个 Tensor 类的实例。

    最好有一些关于此的中级文档的链接。

    关于tensorflow - tensorflow 中的 tf.variable 与 tf.constant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44880564/

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