为什么`tf.constant_initializer`没有采用恒定张量?

lur*_*her 2 python-2.7 tensorflow

Tensorflow决定制作一个constant_initializer仅采用标量值的操作,这对我来说似乎很愚蠢.能够使用常量张量初始化变量会很有意义:

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]])))
Run Code Online (Sandbox Code Playgroud)

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

mrr*_*rry 5

tf.constant_initializer()功能可能不接受tf.Tensor作为参数,但接受作为参数.这意味着你可以写:tf.get_variable() tf.Tensorinitializer

v = tf.get_variable('some_var', initializer=tf.constant([[0, 0, 0],
                                                         [0, 0, 1],
                                                         [0, 1, 0],
                                                         [1, 0, 0]]))
Run Code Online (Sandbox Code Playgroud)

......这需要更少的角色!

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]])))
Run Code Online (Sandbox Code Playgroud)

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