Таблица не инициализирована проблема с использованием функции @ tf. при загрузке модели концентратора TF

Я пытаюсь загрузить модель концентратора Tf и предсказать результат с помощью декоратора @ tf.function. Выдает ошибку tensorflow.python.framework.errors_impl.FailedPreconditionError: Таблица не инициализирована.

Версия TF - 2.1.0

Версия TF hub - 0.8.0

Примечание: он работает без использования декоратора @ tf.function.

import tensorflow as tf
import tensorflow_hub as hub

image_tensor = tf.constant(2.0, shape=[1, 298, 298, 3])


@tf.function
def run_function(method, args):
    return method(args)


detector = hub.KerasLayer("https://tfhub.dev/google/openimages_v4/ssd/mobilenet_v2/1", 
signature_outputs_as_dict=True)
detector_output = run_function(detector, image_tensor)
class_names = detector_output["detection_class_entities"]
print(class_names)

Может ли кто-нибудь узнать причину, по которой он не работает с функцией @ tf.?


person umesh kumar    schedule 20.05.2020    source источник


Ответы (1)


Вы используете модель концентратора TensorFlow V1 в hub.KerasLayer, которая будет использоваться для моделей tf2.0

В концентраторе TensorFlow вы можете найти переключатель для просмотра моделей концентраторов tf для определенных версий TensorFlow.

введите описание изображения здесь

Чтобы заставить его работать с hub.KeralLayer, измените URL-адрес на любую из следующих версий tf2.0 mobilenet

  1. https://tfhub.dev/google/tf2-preview/mobilenet_v2/classification/4
  2. https://tfhub.dev/google/imagenet/mobilenet_v2_050_96/classification/4

или если вам нужно использовать точный URL-адрес, как в вашем примере. Используйте hub.Module вместо hub.KeralLayer

person Himaprasoon    schedule 20.05.2020