Git Product home page Git Product logo

simpsons_classifier's Introduction

Задача: научиться классифицировать симпсонов на изображении

Для классификации изображений использована сверточная нейронная сеть ResNet50

Dataset взят с Kaggle https://www.kaggle.com/datasets/alexattia/the-simpsons-characters-dataset

Структура репозитория:

  1. dataset - папка с изображениями симпсонов, в ней содержатся файлы для train и отдельно лежат файлы для test
  2. notebook - jupyter notebook-и с комментариями и результатом работы кода, class_simp - ноутбук с исходным кодом, inference - ноутбук с готовой моделью, там вы можете посмотреть результаты работы просто запустив ячейки последователно(ВАЖНО!!! чтобы запустить inference надо скачать model.pt и label_encoder.pkl)
  3. requirements - текстовый файл, где записаны все, используемые мной библиотеки
  4. label_encoder.pkl - файл, в котором храниться кодировка для каждой метки в датасете
  5. config - файл с параметрами, используемыми для обучения и работы кода в целом
  6. main.py - файл, который вы можете запустить, чтобы увидеть полную работу алгоритма(скрипт для запуска написан в main.sh)

Кратокое описание работы

  1. Посмотрев на данные, мы можем выяснить, что изначально имеем сильный дисбаланс классов. В каких-то классах изображений около 2000, в других и 10 нет
  2. Как решение проблемы я предлагаю использовать оптимизатор AdamW и настроить weight_decay для регуляризации весов модели (были попытки использовать oversampling, но из-за этого было переобучение уже на 3 эпохе: train_accuracy = 0.92, а val_accuracy = 0.02 => я отказался от этого способа)
  3. Использование сверточной нейронной сети обусловлено нашей задачей: классификация изображений
  4. После обучения видим, что метрика f1-score = 0.97 ( на тестовых данных), что является довольно хорошим результатом

simpsons_classifier's People

Contributors

feff2 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.