【问题标题】:Initialise tensors with ones in tensorflow 1用 tensorflow 1 中的张量初始化张量
【发布时间】:2020-04-27 12:27:57
【问题描述】:

我想用 1s 初始化使用 get_variable 函数声明的变量。 我尝试了以下方法:

1.tf.get_variable(name = 'yd1', shape = shape_t, dtype = tf.float32,initializer = tf.ones())

收到错误 -> TypeError: one() 至少需要 1 个参数(给定 0)

  1. tf.get_variable(name = 'yd1', shape = shape_t ,dtype = tf.float32,initializer = tf.ones(shape=shape_t))

收到错误 -> ValueError("如果初始化器是常量,则不要指定形状。")

用 1 初始化变量的最佳方法是什么? tf.zeros_initializer 可用于初始化为 0,但在 tf 1 中没有等效项

【问题讨论】:

    标签: tensorflow variables initialization


    【解决方案1】:

    你需要使用tf.ones_initializer:

    tf.get_variable(name='yd1', shape=shape_t, dtype=tf.float32,
                    initializer=tf.ones_initializer())
    

    或者,正如第二条错误消息所说,您可以使用常量值,但不要传递形状:

    tf.get_variable(name='yd1', initializer=tf.ones(shape=shape_t, dtype=tf.float32))
    

    【讨论】:

      【解决方案2】:

      tf.ones_initializer 在 tf 1 中不可用,它是在 tf 2 中引入的。

      下面的代码完成了工作

      tf.get_variable(name = 'yd1', shape = shape_t ,dtype = tf.float32,initializer = tf.constant_initializer(1))
      

      【讨论】:

        猜你喜欢
        • 2016-02-16
        • 2020-06-08
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 2016-09-15
        • 1970-01-01
        • 2023-03-06
        • 2017-12-10
        相关资源
        最近更新 更多