Проект по классификации кожных заболеваний
По вопросам обращаться: tg: @phinnik
pip install -r requirements.txt
Поменяйте версию pytorch в зависимости от ваших драйверов.
- Cкачать архив с данными на Kaggle
- Создать директорию
data/raw/skin_cancer_mnist
и распаковать в нее содержимое архива - Сгенерировать сплит с помощью скрипта
python src/scripts/generate_split.py
Для этого вам необходимо будет пройти регистрацию в ClearMl (или развернуть его локально)
python models/clf/train.py
cd docker-compose
docker compose -f deploy.yml up --build
Напоминалка: [установить nvidia-docker](sudo systemctl restart docker)
export RELEASE_VERSION=0.1.0
cd src/app
uvicorn main:app --reload --host 0.0.0.0
curl -X 'POST' \
'http://127.0.0.1:8000/classify' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'image=@data/raw/skin_cancer_mnist/ham10000_images_part_2/ISIC_0029306.jpg;type=image/jpg'
>>> import requests
>>> url = 'http://127.0.0.1:8000/classify'
>>> image_fp = 'data/raw/skin_cancer_mnist/ham10000_images_part_2/ISIC_0029306.jpg'
>>> with open(image_fp, 'rb') as f:
>>> image = f.read()
>>> requests.post(url, files={'image': image}).json()
{'Pathology': 'Меланоцитарные невусы'}
python src/scripts/calculate_metrics.py --split_dir data/processed/splits/skin_cancer_mnist_split --model_checkpoint_fp models/model_releases/0.1.0/models.pkl