Tensorflow 2.0 Невозможно преобразовать тензор в массив numpy при использовании tf.compat.v1.disable_eager_execution () - PullRequest
0 голосов
/ 05 марта 2020

Я строю сеть, которая возвращает numpy массивов того же размера, что и входные данные. Однако эта сеть очень медленная, и для обработки 12 изображений требуется более 10 секунд.

Когда я использую tf.compat.v1.disable_eager_execution(), эта же сеть обрабатывает 12 изображений менее чем за 0,1 секунды. Теперь, однако, сеть возвращает тензоры, которые я не могу преобразовать в numpy массивы. Это вывод сети, когда я print(output):

Tensor("mul_20:0", shape=(12, 224, 224, 3), dtype=float32)

Я пытался output.numpy() и получаю следующую ошибку:

AttributeError: 'Tensor' object has no attribute 'numpy'

Что я могу сделать, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете использовать tf.Tensor.numpy только тогда, когда вы используете стремительное выполнение. Когда нетерпеливое выполнение отключено, все ваши операции просто строят график. Вам нужно использовать сеанс, чтобы фактически запустить его и получить результат.

with tf.compat.v1.Session() as sess:
    result = sess.run(output)
    print(result)  # result is a numpy array

См. https://www.tensorflow.org/api_docs/python/tf/compat/v1/Session

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...