Я обучил модель тензорного потока mobilnet_v2 с помощью tf 2.1.0 и hub.KerasLayer с помощью python и экспортировал ее в формате pb с помощью tf.keras.models.save_model. Я загрузил его с помощью java, но не могу найти способ правильно скормить график.
Вот код построения и экспорта модели:
for image_batch, label_batch in train_generator:
break
IMG_SHAPE = (IMG_SIZE, IMG_SIZE, 3)
feature_extractor_url = "https://tfhub.dev/google/tf2-preview/mobilenet_v2/feature_vector/2"
feature_extractor_layer = hub.KerasLayer(feature_extractor_url,
input_shape=IMG_SHAPE,
name='input')
feature_batch = feature_extractor_layer(image_batch)
feature_extractor_layer.trainable = False
model = tf.keras.Sequential([
feature_extractor_layer,
layers.Dense(train_generator.num_classes, name='output')
])
...... training .......
tf.keras.models.save_model(model,export_path)
Вот как я пытаюсь ввести его java:
Tensor inputImage = getTensorFromImage() // a method defined in other code and tested ok
final Session s = new Session(graphFromPBLoadedModel);
final Tensor result = s.runner().feed("input", inputImage )
.fetch("output").run().get(0))
Вот сгенерированное исключение:
java.lang.IllegalArgumentException: No Operation named [input] in the Graph
Я предполагаю, что это проблема с подписью во время сборки или экспорта, но не могу найти правильный способ сделать это ...