代码之家  ›  专栏  ›  技术社区  ›  Atinesh

对TensorFlow对象执行操作时获取类型错误

  •  0
  • Atinesh  · 技术社区  · 6 年前

    下面是代码的简化版本,我在第行出错 res = input - var

    import tensorflow.contrib.slim as slim
    import tensorflow as tf
    
    x = tf.placeholder(tf.float32, shape=[None, 150, 220, 3], name='x')
    
    input = slim.conv2d(x,  num_outputs=96, kernel_size=11, stride=4, padding=padding, scope=scope, weights_initializer=tf.truncated_normal_initializer(stddev=0.01), biases_initializer=None, activation_fn=None)
    
    var = tf.zeros_initializer()
    
    res = input - var
    

    变量类型

    input type: <tensorflow.python.ops.init_ops.Zeros object at 0x7f1a017fdb38>
    var_type: Tensor("conv1/Conv2D:0", shape=(?, 35, 53, 96), dtype=float32)
    

    误差

    TypeError: Expected float32, got <tensorflow.python.ops.init_ops.Zeros object at 0x7f1a017fdb38> of type 'Zeros' instead.
    

    我该怎么解决呢,任何建议都会有帮助的。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Rifat Alptekin Çetin    6 年前

    在这几行中,您试图从张量中减去一个方法。

    var = tf.zeros_initializer()
    res = input - var