Я отправился в путешествие, чтобы узнать о глубоком обучении. «Вещи, которым мы должны научиться, прежде чем мы сможем их делать, мы учимся, делая их». — Аристотель.

Сначала мы находим набор данных. Kaggle имеет фантастическую коллекцию наборов данных. Затем мы выбираем набор данных о фруктах, чтобы упростить его.

После извлечения набора данных мы выбираем папки с важными фруктами, яблоками и бананами. Теперь нам нужно обучить нашу сверточную нейронную сеть (CNN), чтобы она могла классифицировать 🍎 и 🍌.

Прежде чем мы начнем обучение, мы дополнительно разделим наш набор данных на две папки: набор для обучения и набор для проверки.

После того, как у нас есть данные, подготовленные и готовые к обучению, время выбрать архитектуру модели. Мы будем использовать VGG16 вместо того, чтобы строить новую архитектуру модели с нуля. Мы должны изменить последние несколько слоев модели VGG16, чтобы включить наши требования к проблеме бинарной классификации, 🍎 или 🍌

Мы установили для слоев VGG16 значение trainable=False, чтобы избежать обновления существующих весов VGG16. Мы будем обучать только последний слой с нашим набором данных, говоря модным языком, мы перенесем обучение.

После того, как мы закончим обучение, мы сохраним модель как файл h5. Затем мы можем загрузить обученную модель из файла h5 и вывести классификацию для нашего 🍎 и 🍌тестового набора данных.

🎉 Тада, у нас есть собственная модель глубокого обучения для классификации яблок и бананов.