Я пытаюсь преобразовать input_image, который является тензором, в массив numpy. Следуя уже отвеченным вопросам здесь и несколько других, которые предложили использовать input_image.eval() или эквивалентно sess.run() для этого преобразования, я сделал то же самое, но выдает ошибку и, по-видимому, ожидает значение feed_dict для sess.run(). Но поскольку здесь я не пытаюсь запустить операцию, зависящую от неизвестных значений, я не вижу здесь необходимости в feed_dict, потому что все, что я здесь делаю, это просто преобразование.
Кроме того, просто для проверки я также попытался преобразовать значение tf.constant([1,2,3]) прямо над ним, используя тот же метод, и оно было успешно скомпилировано, несмотря на то, что его тип данных такой же, как input_image. Вот мой код, который является частью более крупного скрипта:
def call(self, x):
input_image = Input(shape=(None, None, 3))
print(input_image.shape)
print(type(tf.constant([1,2,3])))
print(type(input_image))
print(type(K.get_session().run(tf.constant([1,2,3]))))
print(type(K.get_session().run(input_image)))
и вот ошибка:
(?, ?, ?, 3)
<class 'tensorflow.python.framework.ops.Tensor'>
<class 'tensorflow.python.framework.ops.Tensor'>
<class 'numpy.ndarray'>
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/client/session.py", line 1365, in _do_call
return fn(*args)
File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/client/session.py", line 1350, in _run_fn
target_list, run_metadata)
File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/client/session.py", line 1443, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found.
(0) Invalid argument: You must feed a value for placeholder tensor 'input_1' with dtype float and shape [?,?,?,3]
[[{{node input_1}}]]
[[input_1/_1051]]
(1) Invalid argument: You must feed a value for placeholder tensor 'input_1' with dtype float and shape [?,?,?,3]
[[{{node input_1}}]]
0 successful operations.
0 derived errors ignored.
Интересно, почему первый будет работать, а второй нет.