Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 运行tf.global_variables_initializer()时InvalidArgumentError_Tensorflow - Fatal编程技术网

Tensorflow 运行tf.global_variables_initializer()时InvalidArgumentError

Tensorflow 运行tf.global_variables_initializer()时InvalidArgumentError,tensorflow,Tensorflow,基本上,我有一个函数,它需要一个张量x和两个占位符z和c def error_robust(x,z,c): zz = tf.reshape(z, [-1, 28, 28, 1]) var = tf.reduce_mean(x-zz) out = tf.cond( tf.abs(var) <= c, lambda: (c*c/6.0)*(1 - tf.pow(1-tf.pow(var/c,2),3)), lambda: tf.Variable(c*c/6.0) ) retur

基本上,我有一个函数,它需要一个张量x和两个占位符zc

def error_robust(x,z,c):
  zz = tf.reshape(z, [-1, 28, 28, 1])
  var = tf.reduce_mean(x-zz)
  out = tf.cond( tf.abs(var) <= c, lambda: (c*c/6.0)*(1 - tf.pow(1-tf.pow(var/c,2),3)), lambda: tf.Variable(c*c/6.0) )
  return out
调用定义的函数不会生成任何错误:

error_r = error_robust(layer1_b.reconstruction, flat_mnist_data, param_robust)
这将生成一个错误:

sess.run(tf.global_variables_initializer())
InvalidArgumentError(回溯见上文):必须为带有dtype float的占位符张量“占位符”输入一个值 [[Node:Placeholder=PlaceholdType=DT_FLOAT,shape=[],_device=“/job:localhost/replica:0/task:0/gpu:0”]]


我真的不明白为什么会这样。关于如何解决这个问题有什么想法吗?

好的,我知道了。我最初期望c是一个简单的标量。所以我使用tf.Variable作为tf.cond的第二个参数。 更新error_robust函数可解决此问题:

def error_robust(x,z,c):
  zz = tf.reshape(z, [-1, 28, 28, 1])
  var = tf.reduce_mean(x-zz)
  out = tf.cond( tf.abs(var) <= c, lambda: (c*c/6.0)*(1 - tf.pow(1-tf.pow(var/c,2),3)), lambda: c*c/6.0 )
  return out
def错误\u鲁棒性(x,z,c):
zz=tf.重塑(z,[-1,28,28,1])
var=tf.减少平均值(x-zz)

out=tf.cond(tf.abs(var)好的,我知道了。我首先希望c是一个简单的标量。所以我使用tf.Variable作为tf.cond的第二个参数。 更新error_robust函数可解决此问题:

def error_robust(x,z,c):
  zz = tf.reshape(z, [-1, 28, 28, 1])
  var = tf.reduce_mean(x-zz)
  out = tf.cond( tf.abs(var) <= c, lambda: (c*c/6.0)*(1 - tf.pow(1-tf.pow(var/c,2),3)), lambda: c*c/6.0 )
  return out
def错误\u鲁棒性(x,z,c):
zz=tf.重塑(z,[-1,28,28,1])
var=tf.减少平均值(x-zz)
out=tf.cond(tf.abs(var)