전체 글

하다보니 재미있는 개발에 빠져있는 평양냉면7 문의사항: ysoil8811@gmail.com
지난 글에서 모델을 바꿔주면서 최고성능을 갱신했다 (0.77)[CV 경진대회] 데이터 증강 기법, ViT 모델 사용 [CV 경진대회] 데이터 증강 기법, ViT 모델 사용경진대회 소개이번 글에서는 Image Classification 경진대회에 대해서 그간 해온 방법을 정리해보려고 한다.이번 경진대회에서는 아날로그 문서를 디지털화할 때 그 이미지를 보고 어떤 종류의 문서yijoon009.tistory.com  이제 여기서 더 나아가서 0.9까지 만들어보자!!!모델 추론 변경어디를 더 수정해 볼까 하다가 모델 학습 쪽에서 변화를 주었다.지금 상황은 학습 데이터셋이 부족한 관계로 StratifiedKFold와 epoch를 같이 조합해서 진행해보려고 한다.k-fold & epoch 조합k-fold와 epoch..
경진대회 소개이번 글에서는 Image Classification 경진대회에 대해서 그간 해온 방법을 정리해보려고 한다.이번 경진대회에서는 아날로그 문서를 디지털화할 때 그 이미지를 보고 어떤 종류의 문서인지 분류하는 CV 경진대회였다.현재 학습 데이터는 1570장의 정상 이미지 데이터고 테스트 데이터는 3140장의 노이즈가 심한 이미지 데이터다. class는 총 17개로 문서도 있고 자동차 대시보드같은 문서가 아닌 일반 이미지 데이터도 들어있다. 평가지표는 Macro F1를 사용했다. 이제 여러가지 기법을 적용해 보면서 모델의 성능을 높여보자!  데이터 증강 기법 적용우선 일차원적으로 생각했을때 테스트 데이터셋에 노이즈가 많기 때문에 학습할 때도 노이즈가 많은 데이터를 학습하면 좋은 성능을 낼 것 같기도..
· MLOps
문제 발생현재 우리는 경진대회에서 제공해 주는 서버에서 MLflow를 연동해 실험 기록을 남기려 하고 있다. tracking_uri를 다음과 같이 설정해서 서버 내부 파일 경로에 데이터를 기록하려고 했다.mlflow.set_tracking_uri("/data/ephemeral/home/exp/mlruns")mlflow.set_experiment("Image Classification")그리고 mlflow ui 명령어로 MLflow UI를 실행했는데 화면에 실험 기록이 보이지 않았다..이유를 찾아보니 MLflow UI가 해당 경로를 직접 참조하지 않기 때문에 발생한 문제라고 한다. MLflow UI에서 실험 데이터를 확인하려면 tracking_uri가 서버에 올바르게 연결되어야 한다.tracking uri..
· ML
서론기존에 머신러닝 프로젝트를 진행하면서 주로 회귀 모델을 사용해 왔는데 최근 프로젝트에서는 KMeans 클러스터링을 활용한 유사 음악 추천 시스템을 구축하게 되었다. 이 시스템의 목표는 다양한 노래 데이터셋을 활용하여 사용자가 입력한 노래와 유사한 곡을 10개 추천하는 것이었다. 클러스터링이 완료된 KMeans 모델을 pkl 파일로 저장하고 서빙하려고 했으나 예상치 못한 에러가 발생했다. KMeans 모델을 이용해 추천하려면 단순히 모델 파일뿐 아니라 클러스터링에 사용한 데이터셋도 필요하다는 사실을 처음 알게 되었다. 이에 따라 회귀 모델과 KMeans 모델의 차이점을 정리해 보았다. 유사곡 추천 시스템을 정리한 내용은 다음 링크에서 확인해볼 수 있다.유사도 기반 음악 추천 시스템 Docker 기반 A..
딥러닝 모델 구현에서 PyTorch딥러닝 모델 구현에 필요한 요소들을 PyTorch를 통해 편리하게 사용할 수 있다.이 그림을 PyTorch 클래스를 이용해서 어떻게 구현을 하는지는 다음과 같다.  Dataset, DataLoader를 이용해서 데이터를 만들게 되고, 만들어진 데이터를 모델에 넘겨주게 된다. 이 모델의 연산과정을 통해서 Output을 내게 된다. 이 Output을 이용해서 Loss를 계산하게 된다. 계산된 Loss들을 이용해서 모델의 파라미터를 업데이트하는 Optimization을 진행하게 된다. 1. 데이터Dataset과 DataLoader를 조합하여 데이터를 손쉽게 로드하고 처리할 수 있다.Dataset과 DataLoader를 사용하면, 데이터 집합에서 미니 배치 크기만큼의 데이터를 ..
· ML
Data Sources (데이터 소스)데이터 소스는 기업의 다양한 시스템에서 발생하는 원천 데이터를 의미한다. 이를테면, 마케팅, 주문, 재고 관리 등 기업이 운영되는 과정에서 발생하는 모든 데이터를 원천 시스템이라고 부르며, 이 데이터가 저장되는 곳을 데이터 소스라고 한다. 데이터 소스는 해당 시스템에서 최초로 생성된 데이터를 보관하는 역할을 한다. 예를 들어, 마케팅 활동의 결과 데이터는 마케팅 DB에, 주문 시스템에서 발생한 주문 데이터는 주문 DB에 저장된다. 이러한 시스템을 원천 시스템 또는 데이터 소스라고 칭하며, 여기서 생성된 원본 데이터를 활용해 다양한 분석 및 비즈니스 활동이 진행된다. Data Lake (데이터 레이크)데이터 레이크는 다양한 원천 시스템에서 수집된 대량의 데이터를 저장하..
PandasPandas는 Python에서 널리 사용되는 데이터 분석 라이브러리로, 다양한 형식의 데이터를 쉽게 불러오고 처리할 수 있다. 그중 가장 자주 사용하는 함수 중 하나는 read_csv로 CSV 파일을 읽을 때 사용된다. 하지만 이 함수는 데이터를 즉시 메모리에 로딩하므로, 물리적 메모리보다 큰 파일을 읽는 데는 한계가 있다. 예를 들어, 64GB의 메모리를 가진 로컬 PC에서 500GB 크기의 CSV 파일을 처리하는 경우, 단순하게 read_csv로 불러오는 것은 불가능하다. 예전에는 500GB를 한 땀 한 땀 자르기도 했는데 더 스마트한 방법이 있다.nrows, chunksizePandas는 이러한 문제를 해결하기 위해 일부 데이터를 로딩하거나, 데이터를 나누어 처리할 수 있는 옵션을 제공한..
tensor에 대해서 공부하다가 각각의 함수가 비슷비슷하고 -1, 1의 쓰임이 조금씩 다르고 텐서를 공부하면서 슬라이싱([:])에 대해서도 새롭게 알게된 내용이 있어서 정리해보려고 한다. 텐서 shape 바꾸기 (1) reshape 함수reshape은 텐서의 모양을 다시 배열하는 함수로 텐서의 원소 수는 유지하되 차원 배열을 바꿀 수 있다. 메모리를 공유하지 않는다.# 모양 변경a = torch.randn(2, 3, 5) # (2,3,5) 크기를 가지는 텐서 생성print(a)print("Shape : ", a.size()) # 텐서 모양 반환print('\n')reshape_a = a.reshape(5, 6) # 3차원 텐서를 2차원 텐서로 크기 변경 (2,3,5) -> (5,6)print(resha..