以下是我的完整代码的链接:
https://github.com/roshanDD/YAD2K/blob/master/yad2k/models/keras_yolo.py#L253
我只想打印张量的值,称为true_areas
。我运行了我的代码:
sess = tf.InteractiveSession()
true_areas = true_wh[..., 0] * true_wh[..., 1]
tf.Print(true_areas, [true_areas], message = "This is True Areas: ")
b = tf.add(true_areas, true_areas).eval()
但它给了我错误:
Caused by op 'input_2', defined at:
File "learning.py", line 358, in <module>
_main(args)
File "learning.py", line 66, in _main
model_body, model = create_model(anchors, class_names)
File "learning.py", line 185, in create_model
boxes_input = Input(shape=(None, 5))
File "/home/ubuntu/anaconda2/envs/py35/lib/python3.5/site-packages/keras/engine/topology.py", line 1388, in Input
input_tensor=tensor)
File "/home/ubuntu/anaconda2/envs/py35/lib/python3.5/site-packages/keras/engine/topology.py", line 1299, in __init__
name=self.name)
File "/home/ubuntu/anaconda2/envs/py35/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py", line 349, in placeholder
x = tf.placeholder(dtype, shape=shape, name=name)
File "/home/ubuntu/anaconda2/envs/py35/lib/python3.5/site-packages/tensorflow/python/ops/array_ops.py", line 1507, in placeholder
name=name)
File "/home/ubuntu/anaconda2/envs/py35/lib/python3.5/site-packages/tensorflow/python/ops/gen_array_ops.py", line 1997, in _placeholder
name=name)
File "/home/ubuntu/anaconda2/envs/py35/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 768, in apply_op
op_def=op_def)
File "/home/ubuntu/anaconda2/envs/py35/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/ubuntu/anaconda2/envs/py35/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 'input_2' with dtype float
[[Node: input_2 = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
它所谈论的占位符是什么?
答案 0 :(得分:0)
错误消息告诉您,您在代码中的某个位置定义了一个名为input_2
的{{3}}。
当您想要评估依赖于此占位符的图表时,您需要为此占位符添加tf.placeholder()个值。看起来应该是这样的:
b = tf.add(true_areas, true_areas).eval({input_2: someInputValues})