전체 글 312

lightning-hydra-template 코드분석

https://github.com/ashleve/lightning-hydra-template GitHub - ashleve/lightning-hydra-template: PyTorch Lightning + Hydra. A very user-friendly template for ML experimentation. ⚡PyTorch Lightning + Hydra. A very user-friendly template for ML experimentation. ⚡🔥⚡ - ashleve/lightning-hydra-templategithub.comPyTorch Lightning과 Hydra를 사용하여 딥러닝 프로젝트를 설정하고 관리하기 위한 템플릿딥러닝 모델 개발, 훈련, 검증, 테스트 등의 과정을 구조화하..

AI/DL 2024.08.29

PyTorch와 PyTorch Lightning

💡 PyTorch 설치 관련pip install "numpyNumpy 1.x 버전으로 다운그레이드PyTorch가 NumPy 2.0.0과의 호환성 문제를 일으키더라고요 (지금은 아닐수도?)pip install torch, torchvision, matplotlib, pandas필요한 패키지 선택적으로 추가 설치 ㄱㄱ💡 PyTorch 튜토리얼 (온라인)https://tutorials.pytorch.kr/beginner/basics/intro.htmlhttps://tutorials.pytorch.kr/recipes/recipes_index.html💡 PyTorch Lightning 이란PyTorch 기반의 딥러닝 모델을 더 쉽게 개발하고 관리할 수 있도록 도와주는 고수준의 라이브러리Lightning Mo..

etc 2024.08.29

[책] PyTorch를 활용한 머신러닝/딥러닝 철저 입문

사실 코드 보면서 무작정 부딪히다보면 익숙해지긴하는데.. 인턴 초기엔 책도 읽어보았숨니다(사실 torch lightning을 거의 사용하긴 했는데) PyTorch 함수들텐서 생성torch.from_numpy(ndarray)NumPy 배열을 텐서로 변환한다torch.utils.data.TensorDataset(data_tensor, target_tensor)설명변수와 목적변수를 합쳐 인덱스 붙이고 하나의 data 집합으로torch.utils.data.DataLoader(dataset, batch_size = 16, shuffle=True)데이터집합을 원하는 크기의 미니배치로 나누어 읽음신경망 구성torch.nn.Modules신경망 모듈 기본 클래스torch.nn.Linear(in, out, bias=Tru..

AI/DL 2024.08.29

Loss function for classification & regression

https://uumini.tistory.com/54https://excelsior-cjh.tistory.com/198 Classification에서 사용하는 기술들에는Cross Entropy Loss (예측 확률 분포와 실제 분포 간 차이 측정)Focal Loss (CEL의 변형, 불균형 데이터셋에 효과적임)Labeling Smoothing (soft label을 사용하여 모델이 지나치게 자신있는 예측하는 것을 방지)Regression에서 사용하는 기술들에는MAE (Mean Absolute Error Loss)예측 값과 실제 값의 차이의 절대값을 평균하여 계산합니다.이상치에 덜 민감하며, 더 많은 양의 작은 오차에 대한 중요도를 부여합니다.nn.L1Loss()MSE (Mean Squared Error ..

AI/DL 2024.08.29

rootutils로 프로젝트 구조 관리하기

프로젝트 root 기준sync/vector_sync.py 에서 utils.py 에 접근하지 못하는 문제가 있음. 즉 부모 디렉터리로 갈 방법이 없음 rootutils + __init__.py 조합으로 해결 가능 (init.py 꼭 안필요한거 같기도)당연히 프로젝트 root에는 .project-root 파일이 존재해야 하구요 import rootutilsrootutils.setup_root(__file__, indicator='.project-root', pythonpath=True)from src.utils import euler2vector setup_root 하면 상위 디렉터리를 traverse 하며 .project-root 파일을 찾고, 해당 디렉터리를 프로젝트 루트로 인식, 그 뒤로는 이제 dot..

etc 2024.08.29

venv → poetry 로 포팅하기

회사 프로젝트를 하는데, venv + requirements.txt 로 의존성 하기가 너무 귀찮았음분명 로컬 환경에서는 잘 됐는데 workflow의 일부 테스트환경에서는 실패하고,, 처음엔 requirements.txt 하나하나 수정했었는데 너무 귀찮더라고요poetry 란?python 의존성 관리와 패키지 배포를 도와주는 도구pip + virtualenv 조합을 대체할 수 있음pyproject.toml 파일을 사용해 프로젝트 설정과 의존성 관리poetry.lock 파일은 의존성이 해결된 후 생성되어, 의존성 트리에 있는 모든 패키지 정보를 lock/기록이렇게 add 하려고 할 때, 자동으로 의존성 관리를 해줍니다.물론 프로젝트 초기부터 poetry 세팅하고 의존성 하나하나 add 해줬다면 좋겠지만, 지금..

etc 2024.08.29

pinball loss란

Qualitile Prediction을 위해 사용되는 Loss function 50퍼 미만인 분위수의 경우 분위수가 작아질수록 예측값이 실제값보다큰 경우 loss가 커지지만작은 경우 loss는 작아진다즉 50% 미만 분위수에 대한 예측값이 실제값보다 낮도록 학습이 될 것임분위수가 낮아질수록 더 낮은 예측값을 얻게 될 가능성이 크도록 학습 될 것임 50퍼 초과인 분위수의 경우분위수가 커질수록 예측값이 실제값보다큰 경우 loss가 작아지지만작은 경우 loss는 커진다즉 50% 초과 분위수에 대한 예측값이 실제값보다 높도록 학습이 될 것임분위수가 높아질수록 더 높은 예측값을 얻게 될 가능성이 크도록 학습 될 것임

etc 2024.08.29

github dependabot

repo에 커밋을 날렸는데, 풀리퀘가 5개정도 생성되어있더라고요 dependabot이라는 친구가 지속적으로 dependencies 문제로 풀리퀘를 날리고 있음을 확인할 수 있다  What is Dependabot?dependabot은 repository의 종속성들을 확인해 보안 이슈가 발생하는 것을 관리해주는 도구repository의 Setting의 Code security and analysis 탭에서 쉽게 Enable / Disable 가능하다 어떻게 해결?pr merge하면 됨 ⇒ 하지만 버전 업데이트가 프로젝트에 미치는 영향 파악해야 함의존성의 의존성에서 문제가 발생했을 때, 자동으로 업그레이드 하지 못함수동으로 충돌을 해결하는 방법이 있다지금은 dependabot pr들이 자동 merge가 안되..

etc 2024.08.29

[논문] Gaze360: Physically Unconstrained Gaze Estimation in the Wild

ICCV 2019  ·  Petr Kellnhofer, Adria Recasens, Simon Stent, Wojciech Matusik, Antonio Torralba💡 초록Gaze360 = 강력한 3D 시선 추정을 위한 대규모 gaze-tracking dataset & method기존 모델에 시간 정보를 포함하여 estimate of gaze uncertainty를 직접 출력하도록 확장ablation study 통해 성능 입증, gaze benchmark datasets과 교차 평가슈퍼마켓 환경에서 고객의 주의 추정하는 응용 프로그램 시연💡 서론2D 신체 자세 및 얼굴 추적과 같은 관련 인간 모델링 문제 ⇒ 비약적인 발전gaze estimation ⇒ large, diverse annotated ..

etc 2024.08.29