Обзор!

В этом проекте я использовал библиотеку глубокого обучения 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 до тех пор, пока вы не пройдете свой учебный путь.

Вывод

Лучший способ учиться — учиться, делая. Вы не можете решить проблемы, которых не знаете. Ваша цель учиться должна состоять в том, чтобы решить все мировые проблемы.