gpt4 book ai didi

python-2.7 - 为什么 `tf.constant_initializer`不取常数张量?

转载 作者:行者123 更新时间:2023-12-03 13:19:48 24 4
gpt4 key购买 nike

Tensorflow has decided to make a constant_initializer op that takes only scalar values 对我来说似乎很愚蠢.能够用常量张量初始化变量很有意义:

tf.get_variable('some_var', shape = [4,3], initializer=tf.constant_initializer(tf.constant([[0,0,0], [0,0,1],[0,1,0],[1,0,0]])))

使用占位符和 feed_dict 是将张量变量初始化为自定义值的唯一方法吗?这迫使人们在不同的地方进行声明和数据初始化,这很麻烦

最佳答案

tf.constant_initializer()函数可能不接受 tf.Tensor作为一个论点,但是 tf.get_variable() 确实接受tf.Tensor 作为其initializer 参数。这意味着你可以写:

v = tf.get_variable('some_var', initializer=tf.constant([[0, 0, 0],
[0, 0, 1],
[0, 1, 0],
[1, 0, 0]]))

...这需要更少的字符!

tf.constant_initializer() 不采用任意张量的原因是它被设计为初始化许多不同形状的变量,每个变量都具有相同的常量值元素。例如,这样的语句:

v = tf.get_variable('some_var', shape=[15, 37], initializer=tf.constant_initializer(
tf.constant([[0, 0, 0],
[0, 0, 1],
[0, 1, 0],
[1, 0, 0]])))

...没有多大意义。可以说我们可以让 tf.constant_initializer() 接受一个标量 tf.Tensor,然后它就会有类似于 tf.fill() 的语义。 ,但我们还没有任何需求。欢迎提出GitHub issue如果它有用的话!

关于python-2.7 - 为什么 `tf.constant_initializer`不取常数张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38805599/

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