Skip to content

artemklevtsov/swarm-quickdraw-doodle-recognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quick, Draw! Doodle Recognition Challenge

Репозиторий содержит наработки, которые были сделаны в ходе участия в соревновании Quick, Draw! Doodle Recognition.

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

  • Dockerfile - докер-образ со всем необходимым для тренирови моделей;
  • src - директория содержит C++ код;
  • src/cv_xt.cpp - иходный код для работы с JSON и формирования на их основе батчей;
  • utils - директория содержит вспомогательные функции для R-скриптов;
  • utils/get_model.R - функция для получения объекта модели, по её краткому названию;
  • utils/keras_iterator_test.R - код итератора для тестовых данных;
  • utils/keras_iterator.R - код итератора для обучения;
  • utils/rcpp.R - плагины для Rcpp;
  • bin - директория содержит исплдгяемые скрипты;
  • bin/fetch_data.R - скрипт для скачивания данных с сайта Kaggle;
  • bin/upload_data.R - скрипт для загрузки данных в БД;
  • bin/train_nn.R - скрипт для тренировки нейронных сетей;
  • bin/predict.R - скрипт для формирования файла с предсказаниями;

Системные требования

Подготовка

Сборка docker-образа

Для сборки образа выполните команду:

docker build --tag doodles-tf .

Параметры и ФС

Выполнить в терминале (bash):

# Директории
DATA_DIR="${PWD}/data"
DB_DIR="${PWD}/db"
LOGS_DIR="${PWD}/logs"
MODELS_DIR="${PWD}/odels"

# Параметры скриптов
SCLAE=0.5
BATCH_SIZE=32
NN_MODEL="mobilenet_v2"

# Создаём необходимые директории
mkdir -p "${DATA_DIR}"
mkdir -p "${DB_DIR}"
mkdir -p "${LOGS_DIR}"
mkdir -p "${MODELS_DIR}"

Получение данных

Войдите в свой аккаунт Kaggle в раздел API и сгенерируйте новый токен (кнопка «Create New API Token»). Полученный файл разместите в корень репозитория или в ${HOME}/.kaggle/kaggle.json.

Выполните команду:

KAGGLE_CREDS="${HOME}/.kaggle/kaggle.json"
CMD="./fetch_data.R -o /data -c /kaggle.json"
docker run --rm \
           -v "${KAGGLE_CREDS}:/kaggle.json" \
           -v "${DATA_DIR}:/data" \
           doodles-tf ${CMD}

Это может занять некоторое время, т.к. данные занимают около 7,5G.

Загрузка данных в БД

Выполните команду:

CMD="./upload_data.R -i /data/train_simplified.zip -d /db"
docker run --rm \
           -v "${DATA_DIR}:/data" \
           -v "${DB_DIR}:/db" \
           doodles-tf ${CMD}

Использование

Обучение модели

Пример кода обучения модели:

CMD="./train_nn.R -m ${NN_MODEL} -b ${BATCH_SIZE} -c -s ${SCLAE} -d /app/db"
docker run --runtime=nvidia --rm \
           -v "${DB_DIR}:/app/db" \
           -v "${LOGS_DIR}:/app/logs" \
           -v "${MODELS_DIR}:/app/models" \
           doodles-tf ${CMD}

Логи работы и модели находятся в директориях logs и models соответственно.

Предсказание

Пример кода для получения предсказаний:

MODEL_FILE="${MODELS_DIR}/mobilenet_v2_128_3ch_08_2.26.h5"
CMD="./predict.R -m /app/submit.h5 -b ${BATCH_SIZE} -c -s ${SCLAE} -d /app/db -o /app/data"
docker run --runtime=nvidia --rm \
           -v "${DB_DIR}:/app/db" \
           -v "${DATA_DIR}:/app/data" \
           -v "${MODEL_FILE}:/app/submit.h5" \
           doodles-tf ${CMD}

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy