Я знаю, как загрузить предварительно обученные модели изображений из Концентратор тензорного потока. вот так:
#load model
image_module = hub.Module('https://tfhub.dev/google/imagenet/mobilenet_v2_035_128/feature_vector/2')
#get predictions
features = image_module(batch_images)
Я также знаю, как настроить выходные данные этой модели (тонкая настройка нового набора данных). Существующий Modules
ожидает, что ввод batch_images
будет тензором изображения RGB.
Мой вопрос: Вместо того, чтобы на входе было RGB-изображение определенных размеров, я хотел бы использовать тензор (тусклый 20x20x128, из другой модели) в качестве входных данных для модели Hub. Это означает, что мне нужно обойти начальные уровни определения модели tf-hub (они мне не нужны). Возможно ли это в API модуля tf-hub? Документация не ясна в этом аспекте.
p.s.: Я могу легко сделать это, определив свои собственные слои, но пытаясь понять, смогу ли я использовать API Tf-Hub.
Существующие модули https://tfhub.dev/google/imagenet/... не поддерживают это.
Вообще говоря, формат hub.Module допускает множественные подписи (то есть комбинации тензоров ввода/вывода; подумайте о подаче и выборке, как в tf.Session.run()). Таким образом, издатели модулей могут организовать это, если есть общий шаблон использования, который они хотят поддерживать.
Но для экспериментов в свободной форме на этом уровне сложности вам, вероятно, лучше напрямую использовать и настраивать код, определяющий модели, например TF Slim (для TF1.x) или Keras Applications (также для TF2). Оба предоставляют предварительно подготовленные Imagenet контрольные точки для загрузки и восстановления на стороне.
я пришел к такому же выводу. hub больше для простоты предсказания модели. Slim или Keras лучше подходят для моего варианта использования.