L oop по партиям тензорных изображений - PullRequest
0 голосов
/ 22 марта 2020

Я использую ImageDataGenerator.flow_from_directory для генерации пакетов данных тензорного изображения, как показано ниже.

validation_generator = test_datagen.flow_from_directory(
    path_data_valid,
    target_size = (img_width, img_height),
    batch_size = batch_size,
    class_mode = "sparse", shuffle = False)

Я хочу отправить разные партии тензорного изображения в мой тензор потока SavedModel, чтобы получить прогнозы без с использованием предиката_генератора следующим образом:

model_predictions = new_model.predict_generator(validation_generator, (nb_validation_samples // batch_size + 1))

Для первого пакета Я знаю, как это сделать:

val_image_batch, val_label_batch = next(iter(validation_generator))
model_predictions = new_model(val_image_batch)

Как насчет всех партий? Как я могу l oop над партией изображений?

Причина, по которой я не хочу использовать Предикат_Генератор, заключается в том, что я хочу вызвать мой интерпретатор tflite, установив каждую партию изображений (val_image_batch) в качестве входных данных как следует:

tflite_interpreter.set_tensor(input_details[0]['index'], val_image_batch)
tflite_interpreter.invoke()

Заранее благодарен за любую помощь.

1 Ответ

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

Похоже, я могу легко l oop над генератором validation_generator и сломать его, как только он пройдет через все партии.

for val_image_batch, val_label_batch in validation_generator:
    cnt += 1
    tf_model_predictions = new_model(val_image_batch)
    tf_pred_dataframe = tf_pred_dataframe.append(pd.DataFrame(tf_model_predictions.numpy(), columns = dataset_labels), ignore_index =True)
    if cnt == nb_validation_samples // batch_size + 1:
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...