Я использую следующий код Python 'ImageAI', чтобы использовать DenseNet для своих исследований.
ImageAI github: https://github.com/OlafenwaMoses/ImageAI
Пример ImageAI: https://towardsdatascience.com/train-image-recognition-ai-with-5-lines-of-code-8ed0bdd8d9ba
В настоящее время я занимаюсь исследованиями, связанными с распознаванием символов (двумерные символы чертежа здания) с использованием подхода CNN (DenseNet).
Один из примеров символа поля VAV: https://ibb.co/cyhwRvf
Я пытаюсь классифицировать 39 классов (количество объектов, которое в данном случае является количеством символов), и у меня есть 2000 изображений каждого класса для обучающих данных (2000 x 39 = 78 000). И у меня есть 1000 изображений каждого для тестовых данных (1000 х 39 = 39 000). Общий размер набора данных составляет 1,82 ГБ (я считаю это относительно небольшим размером, но, пожалуйста, исправьте меня, если я ошибаюсь).
Но проблема в том, что время тренировки занимает так много времени.
Я пытался использовать графический процессор (Nvidia Geforce RTX 2080 Ti), и мне нужно 3 дня, чтобы тренироваться, когда я устанавливаю период (количество экспериментов) равным 200.
Я хотел бы знать, есть ли способ сократить время на обучение. Могу ли я изменить какие-либо параметры или какие-либо другие параметры?
Или это считается нормальным временем потребления с учетом размера набора данных и используемого мной графического процессора?
Пять строк кода для обучения следующие:
from imageai.Prediction.Custom import ModelTraining
model_trainer = ModelTraining()
model_trainer.setModelTypeAsDenseNet()
model_trainer.setDataDirectory("mechsymbol")
model_trainer.trainModel(num_objects=39, num_experiments=200, enhance_data=True, batch_size=32, show_network_summary=True)