【问题标题】:tensorflow: how create an const tensor the same shape as a placeholdertensorflow:如何创建与占位符形状相同的 const 张量
【发布时间】:2018-05-20 08:26:47
【问题描述】:

我有一个输入占位符:

Y = tf.placeholder(dtype=tf.float32, shape=(None, n_outputs))

现在我想创建一个与 Y 形状相同的常量:

w = Y.get_shape()
zero = tf.constant(np.zeros(w), dtype=tf.float32)

错误返回:

__index__ returned non-int (type NoneType)

【问题讨论】:

    标签: python tensorflow tensor


    【解决方案1】:

    为什么不使用与占位符相同的形状来构建常量,这样的东西应该可以工作。

    zero = tf.constant(0, dtype=tf.float32, shape(none, n_outputs))
    

    我认为是因为占位符没有提供任何数据,这就是您收到错误的原因

    【讨论】:

    • 我试过你的想法:zero = tf.constant(0, dtype=tf.float32, shape = (None, n_outputs)),这里是错误“int() 参数必须是字符串,类似字节的对象或数字,而不是 'NoneType'"。
    • 摆脱没有可能
    • 只有形状(n_outputs)
    【解决方案2】:

    在另一篇文章中找到答案 tensorflow-constant-with-variable-size

    zero = tf.fill(tf.shape(Y), 0.0)
    

    【讨论】:

      【解决方案3】:

      如果你想用零或一填充你的张量,你可以使用tf.zeros_like和tf.ones_like方法作为tf.fill的简写。

      a = tf.constant([0, 1, 2, 3, 4])
      
      a_zeros = tf.zeros_like(a)
      a_zeros
      >>> <tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 0, 0, 0, 0], dtype=int32)>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多