У меня есть следующий скрипт, как я могу обрабатывать не датафрейм картинок, а одну картинку? (Надо ли делать датафрейм из одной картинки или можно проще?)

import tensorflow as tf
from tensorflow.keras.optimizers import Adamax
from tensorflow.keras.preprocessing.image import ImageDataGenerator
import numpy as np
import pandas as pd
import os
from tensorflow.keras.models import load_model


"""
**Python**: Версия 3.10
"""


# Функция для настройки GPU, если он доступен
def setup_gpu():

    gpus = tf.config.list_physical_devices('GPU')
    if gpus:
        try:
            for gpu in gpus:
                tf.config.experimental.set_memory_growth(gpu, True)
            logical_gpus = tf.config.list_logical_devices('GPU')
            print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
        except RuntimeError as e:
            print(e)


def load_data_frame(sdir):

    flist = os.listdir(sdir)
    # Создает списки путей к файлам и меток
    filepaths = [os.path.join(sdir, f).replace('\\', '/') for f in flist]
    labels = ["UNK"] * len(flist)  # Заполняем все метки как "UNK"
    return pd.DataFrame({'image': filepaths, 'dx': labels})


# Функция для компиляции моделей
def compile_model(model_path, learning_rate=0.001):

    model = load_model(model_path)
    # Компилируем модель с оптимизатором Adamax и функцией потерь 'categorical_crossentropy'
    model.compile(optimizer=Adamax(learning_rate=learning_rate),
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])
    return model


# Функция получения меток из DataFrame для списка изображений
def get_labels(df, images):

    return [df[df['image'] == x]['dx'].iloc[0] if not df[df['image'] == x]['dx'].empty else 'UNK'
            for x in images]


# Функция для формирования массива предсказаний на основе сумм вероятностей каждой модели
def ensemble_predictions(predictions_list, labels):

    pr_sum = []
    for preds in zip(*predictions_list):
        # Суммируем вероятности всех моделей и определяем класс с максимальной суммой
        sum_preds = sum(preds)
        pr_sum.append(np.argmax(sum_preds))
    return [labels[i] for i in pr_sum]


def main():

    tf.get_logger().setLevel('ERROR')
    setup_gpu()

    # Параметры изображения
    img_size = (224, 224)
    labels = ['AK', 'BCC', 'BKL', 'DF', 'MEL', 'NV', 'SCC', 'VASC']

    # Загружаем данные
    df = pd.read_csv('./25k_df.csv')
    predict_dir = './predict'
    df_predict = load_data_frame(predict_dir)

    # Создаем генератор изображений
    tvgen = ImageDataGenerator(preprocessing_function=lambda x: x)
    predict_gen = tvgen.flow_from_dataframe(df_predict,
                                            directory=None,
                                            x_col="image",
                                            y_col="dx",
                                            target_size=img_size,
                                            class_mode='categorical',
                                            color_mode='rgb',
                                            shuffle=False,
                                            batch_size=50)

    # Загружаем и компилируем модели
    print('\nЗагрузка и компиляция моделей')
    model_paths = ["./Models/model-88.70.h5", "./Models/model-88.80.h5", "./Models/model-89.20.h5"]
    models = [compile_model(path) for path in model_paths]

    # Получаем предсказания от каждой модели
    print('\nПрогнозирование')
    predictions = [model.predict(predict_gen) for model in models]

    # Обрабатываем результаты
    df_predict['image'] = df_predict['image'].apply(os.path.basename)
    images = df_predict['image'].to_list()
    individual_results = [[labels[np.argmax(x)] for x in preds] for preds in predictions]
    DXs = get_labels(df, images)
    ensemble_results = ensemble_predictions(predictions, labels)

    # Создаем DataFrame с результатами предсказаний каждой модели, ансамбля и правильными метками
    predict_table = pd.DataFrame({'Изображение': images,
                                  'Model 1': individual_results[0],
                                  'Model 2': individual_results[1],
                                  'Model 3': individual_results[2],
                                  'Ансамбль': ensemble_results,
                                  'Правильная метка': DXs})

    print("\n", predict_table)


if __name__ == "__main__":
    main()