[TIL] #18 2026-04-30
·
TIL
상황 : 데이터셋 병합시 ID불일치상황원본 데이터(56종)와 추가 데이터를 합쳐서 EDA를 돌렸는데, 예상한 클래스 수는 98개인데 실제로는 143개가 나왔다. txt 파일 기준으로 세면 143개, json 기준으로 세면 98개라 처음엔 집계 방식 문제인 줄 알았다. 원인● build_global_class_map(모든 JSON 파일을 돌면서 category_id → yolo_class_id 전역 매핑을 만드는 함수)이 category_id를 클래스 식별 기준으로 쓰고 있었음-> 같은 약(예: 놀텍정)이 원본 데이터에선 category_id = 5, 추가 데이터에선 category_id = 200423처럼 서로 다른 ID를 가지고 있었다. 결과적으로 같은 약이 두 개의 다른 클래스로 카운트되어 143개가..
[TIL] #17 2026-04-28
·
TIL
상황1상황 설명YOLO 모델이 약을 인식하면 클래스명("놀텍정 10mg")으로 식약처 API를 조회하도록 했는데, "울트라셋이알서방정"만 결과가 나오고 나머지는 전부 "정보를 찾을 수 없습니다"가 떴다. 원인식약처 API DB에는 약품명이 "놀텍정10밀리그램(일라프라졸)"처럼 용량을 한글로 저장하고 있었다. YOLO 클래스명은 "놀텍정 10mg"처럼 영문 단위를 쓰기 때문에 검색어 자체가 DB 형식과 달라서 매칭이 안 됐던 것이다 .. 해결정규식으로 용량 패턴(10mg, 800mg 등)을 감지해서 검색 전에 한글로 변환하도록 했다.DOSAGE_PATTERN = re.compile(r"\s*(\d+(?:\.\d+)?)\s*(mg|mcg|g|ml)\b", re.IGNORECASE)UNIT_KO = {"mg..
[TIL] #16 2026-04-23
·
TIL
상황 1. ModuleNotFoundError - No module named 'src'Colab에서 tests/detr_test/detr_test.py를 실행했더니 아래 에러가 발생했다. src 폴더가 분명히 있는데 왜 못 찾는지 고민해보았다 .. 원인Python은 스크립트를 실행할 때 해당 파일이 있는 디렉토리를 기준으로 모듈을 탐색한다고 한다. detr_test.py는 tests/detr_test/ 안에 있어서 Python 입장에서는 거기서부터 탐색을 시작하기 때문에 프로젝트 루트의 src 폴더가 보이지 않았던 것이다. 해결파일 상단에 아래 코드를 추가해서 프로젝트 루트를 sys.path에 직접 등록했다.from pathlib import Pathimport sysPROJECT_ROOT = Path..
[TIL] #15 2026-04-22
·
TIL
상황1 : uv sync가 torch cu128을 CPU 버전으로 덮어쓰는 문제 uv run python 으로 학습 스크립트를 실행할 때마다 아래 에러가 반복됐다.RuntimeError: operator torchvision::nms does not exist처음엔 torchvision을 재설치하면 해결됐지만, 다시 uv run을 하면 또 같은 에러가 났다. 원인uv run은 실행 전에 자동으로 uv sync를 돌린다. 문제는 pyproject.toml에 torch/torchvision이 [project.dependencies]에 없었고, [tool.uv.sources]의 설정도 잘못된 형식(url)을 쓰고 있었다 ! # 잘못된 설정 — url은 직접 wheel 파일 경로용이라 index URL엔 동작 ..
[TIL] #14 2026-04-16
·
TIL
배경 FashionMNIST 데이터셋으으로 GAN과 LDM모델을 구현하고 성능을 보는 실험을 하고 있었는데, 이미지의 품질을 보기 위해서 FID를 사용했는데, 문제들이 많이 발생했다. 문제1. FID가 1 아래로 나왔다.GAN모델의 경우 상식적인 FID값이 나왔는데, LDM학습을 하다보니 FID값이 1 아래로 나왔다. 직관적으로 말이 안되는 수치였다. 초기학습단계에는 이미지가 노이즈 수준일텐데, 1아래로 나온다는건 왜 그랬을까 ? 원인 FrechetInceptionDistance(feature=64)로 설정했던 것이 문제였다. feature 수가 너무 작으면 실제 이미지와 생성 이미지의 분포 차이를 제대로 잡아내지 못한다는 것을 알게 됐다. # 문제가 된 코드fid = FrechetInceptionDis..
[TIL] #13 2026-04-12
·
TIL
※Focal LossSementic Segmentation을 진행하던 중, Focal Loss라는 개념을 처음 알게 되었다. CE Loss의 경우, 쉬운 샘플(배경)에 많은 가중치를 주기 떄문에, 어려운 클래스를 잘 배우지 못한다.(클래스 불균형이 심할 때) -> Focal Loss의 경우 어려운 샘플(확률 낮은 샘플)에 가중치를 높여서 손실을 계산하여, 클래스 불균형에 강한 손실이다. -> 클래스 불균형이 심하거나 멀티클래스 문제이거나, 배경이 많은 이미지 처리 문제일 시에 nn.CrossEntropyLoss()보다 Focal Loss를 사용하는게 좋다는걸 배웠다. 하지만 torchvision.ops에서 제공하는 sigmoid_focal_loss는 binary용이라서 multiclass에는 맞지..