gpt4 book ai didi

tensorflow - 为什么 tf.zeros 允许未知维度,而 tf.get_variable 不允许?

转载 作者:行者123 更新时间:2023-12-03 21:53:37 26 4
gpt4 key购买 nike

给定一些占位符张量x,使得:

x = tf.placeholder(无, 100)

我想知道为什么:

h = tf.zeros(shape = (tf.shape(x)[0], 50))

可以工作,但类似:

h = tf.get_variable("h", shape = (tf.shape(x)[0], 50), 初始化器 = tf.constant_initializer(0.0))

给我一​​个值错误:

ValueError: Shape of a new variable (pred/h) must be fully defined, but instead was (?, 50)

它们不是都初始化一些变量吗,为什么要让 tf.zeros(...) 工作于未知的大小,而 tf.get_variable(...) 不是吗?

最佳答案

您可以为运行局部张量设置动态形状(可以在计算需要时动态创建),例如零、一、随机张量等。

但对于变量,则不能,因为它们需要在每次运行之间分配和保存,因此它们需要具有固定的形状(不依赖于运行操作)。

要获得相同的结果,您应该使用 x.get_shape()[0] ,它将返回请求的尺寸(如果已定义)。

关于tensorflow - 为什么 tf.zeros 允许未知维度,而 tf.get_variable 不允许?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064458/

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