Как исправить ошибку RuntimeError: get_session недоступен при использовании TensorFlow 2.0.

Я новичок в Python, и я пытаюсь запустить этот код. Но я продолжаю получать эту ошибку.

from imageai.Detection import ObjectDetection
import os

execution_path = os.getcwd()

detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))
detector.loadModel()
self.sess = tf.compat.v1.keras.backend.get_session()
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))

for eachObject in detections:
    print(eachObject["name"] , " : " , eachObject["percentage_probability"] )

Я должен получить процентное значение для объектов на изображении, но вместо этого я получаю следующее:

Использование бэкэнда TensorFlow. Traceback (последний вызов последним): файл "Detection.py", строка 6, в файле Detection = ObjectDetection() "C:\Python36\lib\site-packages\imageai\Detection__init__. Py", строка 88, в init self.sess = K.get_session () Файл "C:\Python36\lib\site-packages\keras\backend\tensorflow_backend.py", строка 379, в get_session 'get_session недоступен ' RuntimeError: get_session недоступно при использовании TensorFlow 2.0.

5 ответов

Ответ: В TF 2.0 следует использоватьtf.compat.v1.Session() вместо того tf.Session()Используйте следующий код, чтобы избавиться от ошибки в Tensorflow2.0:

import tensorflow as tf

tf.compat.v1.Session()

т.е. в приведенном выше коде замените эту строку self.sess = tf.compat.v1.keras.backend.get_session()кода с

self.sess = tf.compat.v1.Session()

Ссылка:

  1. https://github.com/tensorflow/tensorflow/issues/26844

'get_session' недоступен при использовании tensorflow 2.0. Он доступен в tenorflow 1.14.0

Просто напишите в командной строке

pip install tensorflow==1.14.0

Поскольку веб-сайт Tensorflow (https://www.tensorflow.org/guide/migrate) предлагает о миграции, вы можете импортировать тензорный поток следующим образом, чтобы сохранить совместимость, когда у вас установлен тензорный поток 2.0: импортируйте tensorflow.compat.v1 как tf

Похоже, у кого-то такая же проблема. они не отметили ответа.

Как исправить модуль tenorflow без атрибута get_default_session

Код там работал у меня после загрузки модели и тестового изображения.

вам может понадобиться библиотека cudnn https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

Результат должен выглядеть так

Любой, у кого есть этот get_session. Это сработало для меня, и я хотел бы поделиться. Замените строку self.sess = K.get_session() на self.sess = tf.compat.v1.InteractiveSession().

Другие вопросы по тегам