Обзор!
В этом проекте я использовал библиотеку глубокого обучения keras вместе с передачей обучения и увеличением данных для классификации видов сеянцев из набора данных о видах сеянцев kaggle. Я буду тонко настраивать сеть VGG16.
Исходный код!
Что вы собираетесь узнать!
1) Использование библиотеки глубокого обучения Keras для задач классификации
2 ) Тонкая настройка VVG16 с переносом обучения
3 ) Как использовать увеличение данных с помощью keras
Вот так!
#1
Здесь я загружаю все свои зависимости
#2
Вот некоторая предварительная обработка. Сначала я помечаю кодирование столбцов «категории», затем создаю другие более читаемые столбцы из столбцов набора данных.
#3
Здесь я визуализирую распределение «cat_id» с помощью гистограммы.
#4
Здесь мы разделяем данные на набор для обучения и проверки.
#5
Здесь я просто уравновешиваю тренировочное распределение
#6
Здесь я создаю увеличение данных, используя «ImageDataGenerator» keras.
#7
Здесь я создаю функцию под названием «flow_from_dataframe()», которая позволит нам создать наш обучающий генератор и наш генератор проверки.
#8
Здесь я использую только что созданную функцию для создания обучающего генератора и генератора проверки. Я также создаю генератор тестов для тестирования после обучения.
#9
Здесь я использую «matplotlib.pyplot» для визуализации некоторых изображений из разных классов.
#10
Здесь я загружаю свою предварительно обученную модель VGG16 с весами imagenet.
#11
Вот моя полная последовательная модель, в которой я добавляю некоторые исключения и использую пакетную нормализацию на каждом плотном слое.
#12
Здесь я компилирую свою модель, чтобы подготовить ее к обучению.
#13
Я загружаю сюда все свои обратные вызовы, которые я предварительно определил, чтобы позже добавить для обучения.
#14
Здесь я вызываю «fit_generator()», где я использую список обратных вызовов, который я определил ранее, вместе с 200 «steps_per_epochs» и 20 «epochs».
#15
После обучения я получаю прогнозы от своей модели, вызывая «predict()».
#16
Здесь я создаю отчет о классификации, чтобы проанализировать свои результаты после тренировки.
#17
Здесь мы готовимся делать прогнозы на тестовом наборе.
#18
Здесь, в нашем тестовом наборе, мы также используем увеличение данных.
#19
Здесь я получаю свои прогнозы на тестовом наборе
#20
Это я отправляю на kaggle, но, очевидно, если вы используете это просто как что-то для обучения, и вам не нужно отправлять свои проекты на kaggle до тех пор, пока вы не пройдете свой учебный путь.
Вывод
Лучший способ учиться — учиться, делая. Вы не можете решить проблемы, которых не знаете. Ваша цель учиться должна состоять в том, чтобы решить все мировые проблемы.