Graph 意外地需要为图形中的不相关占位符提供输入值

Graph 意外地需要为图形中的不相关占位符提供输入值,graph,tensorflow,tflearn,Graph,Tensorflow,Tflearn,在这里,我试图用TFLearn在Tensorflow中实现变分自动编码器 我在self.training\u model.session中构建用于训练、编码和生成一个大图的计算。self.generating\u model和self.recognition\u model与self.training\u model共享同一会话 当我运行generating_model生成MNIST 2D潜在空间时,一切都很顺利。但是当我运行self.recognition\u model对给定的输入数据进行编

在这里,我试图用TFLearn在Tensorflow中实现变分自动编码器

我在
self.training\u model.session
中构建用于训练、编码和生成一个大图的计算。
self.generating\u model
self.recognition\u model
self.training\u model
共享同一会话

当我运行
generating_model
生成MNIST 2D潜在空间时,一切都很顺利。但是当我运行
self.recognition\u model
对给定的输入数据进行编码时出现了错误,它要求我为属于
self.training\u model
self.training\u data
提供输入值

以下是全部错误:

Traceback (most recent call last):
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1039, in _do_call
    return fn(*args)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1021, in _run_fn
    status, run_metadata)
  File "/home/wermarter/anaconda3/lib/python3.5/contextlib.py", line 66, in __exit__
    next(self.gen)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 466, in raise_exception_on_not_ok_status
    pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'train_data/X' with dtype float
     [[Node: train_data/X = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
     [[Node: add_5/_47 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_8_add_5", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/wermarter/Desktop/vae.py", line 178, in <module>
    main()
  File "/home/wermarter/Desktop/vae.py", line 172, in main
    vae.img_transition(trainX[4], trainX[100])
  File "/home/wermarter/Desktop/vae.py", line 130, in img_transition
    enc_A = self.encode(A)[0]
  File "/home/wermarter/Desktop/vae.py", line 121, in encode
    return self.recognition_model.predict({self.input_data: input_data})
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tflearn/models/dnn.py", line 257, in predict
    return self.predictor.predict(feed_dict)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tflearn/helpers/evaluator.py", line 69, in predict
    return self.session.run(self.tensors[0], feed_dict=feed_dict)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 778, in run
    run_metadata_ptr)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 982, in _run
    feed_dict_string, options, run_metadata)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1032, in _do_run
    target_list, options, run_metadata)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1052, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'train_data/X' with dtype float
     [[Node: train_data/X = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
     [[Node: add_5/_47 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_8_add_5", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

Caused by op 'train_data/X', defined at:
  File "/home/wermarter/Desktop/vae.py", line 178, in <module>
    main()
  File "/home/wermarter/Desktop/vae.py", line 169, in main
    vae = VAE()
  File "/home/wermarter/Desktop/vae.py", line 28, in __init__
    self._build_training_model()
  File "/home/wermarter/Desktop/vae.py", line 78, in _build_training_model
    self.train_data = tflearn.input_data(shape=[None, *self.img_shape], name='train_data')
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tflearn/layers/core.py", line 81, in input_data
    placeholder = tf.placeholder(shape=shape, dtype=dtype, name="X")
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/ops/array_ops.py", line 1507, in placeholder
    name=name)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/ops/gen_array_ops.py", line 1997, in _placeholder
    name=name)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 768, in apply_op
    op_def=op_def)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2336, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1228, in __init__
    self._traceback = _extract_stack()

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'train_data/X' with dtype float
     [[Node: train_data/X = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
     [[Node: add_5/_47 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_8_add_5", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
回溯(最近一次呼叫最后一次):
文件“/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py”,第1039行,在调用中
返回fn(*args)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第1021行,在
状态,运行(元数据)
文件“/home/wermarter/anaconda3/lib/python3.5/contextlib.py”,第66行,在__
下一个(self.gen)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/framework/errors\u impl.py”,第466行,处于引发异常状态
pywrap_tensorflow.TF_GetCode(状态))
tensorflow.python.framework.errors\u impl.InvalidArgumentError:必须为带有数据类型float的占位符tensor“train\u data/X”提供一个值
[[Node:train_data/X=Placeholder[dtype=DT_FLOAT,shape=[],[u device=“/job:localhost/replica:0/task:0/gpu:0”]()]
[[Node:add_5/_47=_Recv[client_terminated=false,Recv_device=“/job:localhost/replica:0/task:0/cpu:0”,send_device=“/job:localhost/replica:0/task:0/gpu:0”,send_device_化身=1,tensor_name=“edge_8_add_5”,tensor_type=DT_FLOAT,_device=“/job:localhost/replica:0/task:0/cpu:0”(])]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/home/wermarter/Desktop/vae.py”,第178行,在
main()
文件“/home/wermarter/Desktop/vae.py”,主文件第172行
vae.img_转换(列车X[4],列车X[100])
文件“/home/wermarter/Desktop/vae.py”,第130行,在img_转换中
enc_A=自编码(A)[0]
文件“/home/wermarter/Desktop/vae.py”,第121行,编码
返回self.recognition\u model.predict({self.input\u data:input\u data})
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tflearn/models/dnn.py”,第257行,在predict中
返回self.predictor.predict(提要)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tflearn/helpers/evaluator.py”,第69行,在predict中
返回self.session.run(self.tensors[0],feed\u dict=feed\u dict)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第778行,正在运行
运行_元数据_ptr)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第982行,正在运行
提要(dict字符串、选项、运行元数据)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第1032行,运行
目标\u列表、选项、运行\u元数据)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第1052行,在
提升类型(e)(节点定义、操作、消息)
tensorflow.python.framework.errors\u impl.InvalidArgumentError:必须为带有数据类型float的占位符tensor“train\u data/X”提供一个值
[[Node:train_data/X=Placeholder[dtype=DT_FLOAT,shape=[],[u device=“/job:localhost/replica:0/task:0/gpu:0”]()]
[[Node:add_5/_47=_Recv[client_terminated=false,Recv_device=“/job:localhost/replica:0/task:0/cpu:0”,send_device=“/job:localhost/replica:0/task:0/gpu:0”,send_device_化身=1,tensor_name=“edge_8_add_5”,tensor_type=DT_FLOAT,_device=“/job:localhost/replica:0/task:0/cpu:0”(])]
由op“列车数据/X”引起,定义于:
文件“/home/wermarter/Desktop/vae.py”,第178行,在
main()
文件“/home/wermarter/Desktop/vae.py”,主文件第169行
vae=vae()
文件“/home/wermarter/Desktop/vae.py”,第28行,初始__
自我.(构建)培训(模型)
文件“/home/wermarter/Desktop/vae.py”,第78行,在构建培训模型中
self.train\u data=tflearn.input\u data(shape=[None,*self.img\u shape],name='train\u data')
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tflearn/layers/core.py”,第81行,输入数据
占位符=tf.占位符(shape=shape,dtype=dtype,name=“X”)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/ops/array_ops.py”,第1507行,在占位符中
名称=名称)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/ops/gen_array_ops.py”,第1997行,在占位符中
名称=名称)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/framework/op_def_library.py”,第768行,在apply_op
op_def=op_def)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/framework/ops.py”,第2336行,在create_op中
初始值=自身值。\默认值\初始值,初始值=初始值)
文件“/home/wermarter/anaconda3/lib/python3.5/site packages/tensorflow/python/framework/ops.py”,第1228行,在__
self.\u traceback=\u extract\u stack()
InvalidArgumentError(回溯见上文):必须为带有数据类型float的占位符张量“train_data/X”输入一个值
[[Node:train_data/X=Placeholder[dtype=DT_FLOAT,shape=[],[u device=“/job:localhost/replica:0/task:0/gpu:0”]()]
[[Node:add_5/_47=_Recv[client_terminated=false,Recv_device=“/job:localhost/replica:0/task:0/cpu:0”,send_device=“/job:localhost/replica:0/task:0/gpu:0”,send_device_化身=1,tensor_name=“edge_8_add_5”,tensor_type=DT_FLOAT,_device=“/job:localhost/replica:0/task:0/cpu:0”(])]

这是一个特定于代码的错误。我的
自我识别