Существует ли более быстрый или лучший способ загрузки и предварительной обработки набора данных NIST SD 19? - PullRequest
0 голосов
/ 06 июня 2019

Мне нужно обучить модель с использованием NIST SD 19. Я скачал набор данных с их веб-сайта и перестроил его так, чтобы у каждого класса был свой собственный каталог с его изображениями внутри.Я не разбил его на поезд и тестовые наборы.

Мне нужно, чтобы они читались или к ним обращались быстрее, например, как TF 2.0 загружает и читает их, если это возможно.

Я сделал классический подход: я перебрал все подкаталоги, имя которыхявляется его классом, затем проходит через каждый файл изображения, считывает его как изображение, добавляет его в список изображений, а его класс (подкаталог, из которого он поступает) в список меток.Затем я создал словарь для перевода имен подкаталогов в целочисленные значения, чтобы модель могла классифицировать его как таковой.


def mapImagesToLabels(dir_dataset):
    data_root = pathlib.Path(dir_dataset)

    all_image_paths = list(data_root.glob('*/*'))
    all_image_paths = [str(path) for path in all_image_paths]

    label_names = sorted(item.name for item in data_root.glob('*/') if item.is_dir())
    label_to_index = dict((name, index) for index, name in enumerate(label_names))
    # print(label_to_index)

    all_image_labels = [label_to_index[pathlib.Path(path).parent.name] for path in all_image_paths]
    all_images = [cv2.imread(image_path) for image_path in all_image_paths]

    print(all_images.shape)
    print(all_images[0].shape)

    return all_images, all_image_labels

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...