본문 바로가기
728x90
반응형
SMALL

전체 글1615

[PyTorch] optimizer 시각화 utils.py import numpy as npimport torchimport torch.nn as nnimport matplotlib.pyplot as pltfrom collections import defaultdict# XOR & Perceptrondef draw_function(func, return_fig=False): xx = torch.linspace(-5, 5, steps=1000) fig = plt.figure() plt.plot(xx.numpy(), func(xx).numpy()) plt.xlabel("x", fontdict={"fontsize":16}) plt.ylabel("y", fontdict={"fontsize":16}, rotation=0) .. 2024. 9. 4.
[MLops] MLflow MLflow MLflow는 머신러닝 라이프사이클을 관리하기 위한 오픈 소스 플랫폼이다. 이 플랫폼은 머신러닝 모델의 실험, 개발, 배포, 그리고 운영 과정을 자동화하고 일관되게 관리할 수 있도록 도와준다. MLflow는 사용자가 실험을 추적하고, 재현 가능한 환경에서 프로젝트를 실행하며, 다양한 포맷의 모델을 저장하고 배포할 수 있게 해준다. pip install mlflowpip install --upgrade pip pip install setuptools 터미널에서 mlflow ui를 입력하면 기계 학습 코드를 실행할 때 매개변수, 코드 버전, 지표 및 출력 파일을 기록하고 결과를 시각화하기 위한 API 및 UI로 접속할 수 있다. mlflow ui  iris 데이터 실습 : 데이터 로드 from .. 2024. 8. 19.
[MLops] GitHub Action Poetry https://python-poetry.org/docs#installing-with-the-official-installer에서 Poetry를 새로운 가상 환경에 설치하고 Poetry가 자체 환경을 관리할 수 있도록 OS에 맞게 설치한다. # window powershell(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -poetry --versionpip install poetry Docker Hub  GitHub Actions  GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포 (CI/CD) 플랫폼이다 이 저장소에 대한.. 2024. 8. 17.
[Docker] ubuntu 파일 복사 ubuntu → container host에서 docker cp 명령으로 진행한다. docker cp (이동할 폴더의 절대경로)/. (컨테이너 name):(컨테이너 내 파일들을 받을 폴더의 절대 경로) 폴더가 아닌 파일을 옮길 때는 /. 대신에 해당 /파일명을 입력한다.  container → ubuntu host에서 docker cp 명령으로 진행한다. docker cp (컨테이너 name):(컨테이너 내에서 이동시킬 파일의 절대 경로) (Ubuntu에서 파일을 복사받을 폴더의 절대경로) 컨테이너 및 이미지 삭제 docker stop [container_name]docker rm [container_name]docker rmi [image_name] 캐시된 빌드 삭제 docker builder prune 2024. 8. 14.
[MLops] 데이터베이스 MySQL 컨테이너 기존 mlops 컨테이너와 동일한 네트워크로 설정하여 통신하도록 생성한다. docker run -itd --name my-mlops-db --network mlops -e MYSQL_ROOT_PASSWORD=root mysql:8.0.39 그 다음, 컨테이너에 진입하여 mlops 데이터베이스 생성한다. # 컨테이너 진입docker exec -it my-mlops-db bash# MySQL 로그인mysql -u root -p # root 패스워드 입력# 데이터베이스 생성create database mlops;# 생성 확인show databases;# 패스워드 인증 방식 변경(python mysqlclient 라이브러리 호환성)alter user 'root'@'%' identified .. 2024. 8. 13.
[MLops] 모델 추론 src/main.py 모델 확장 파일을 pth로 지정한다. model_ext = "pth"python src/main.py train --model_name movie_predictor --optimizer adam --num_epochs 20 --lr 0.002  src/utils/utils.py torch.save는 내부적으로 pickle을 사용해 직렬화 (마샬링) 후 저장하게 된다. 이는 보안적 취약점으로 작용하게 된다. 따라서, 최소한의 검증 절차인는 sha256 해시 알고리즘을 통해 변조 여부를 최소한으로 확인한다. import osimport randomimport hashlibfrom datetime import datetimeimport numpy as npimport torchdef pa.. 2024. 8. 13.
[MLops] 학습 결과 기록하기 wandb W&B (Weight and Bias)은 실험 그룹 혹은 실험 단위로 실험 이력 요소들을 관리할 수 있다. https://wandb.ai/site에 접속하여 가입한 후 API 키를 발급받는다. pip install wandb 그리고 다음 경로에서 API 키를 저장하기 위해 환경 변수 파일인 .env를 생성한다.  src/utils/utils.py Run name 자동 지정하기 위해 다음을 추가한다. def auto_increment_run_suffix(name: str, pad=3): suffix = name.split("-")[-1] next_suffix = str(int(suffix) + 1).zfill(pad) return name.replace(suffix, next_s.. 2024. 8. 12.
[MLops] 모델 저장하기 라이브러리 설치 ONNX 포맷으로 저장하기 위해 다음을 실행한다. 그리고 Fire 라이브러리를 활용하면 task 별로 필요한 인자를 설정하여 CLI 기반 프로그램을 쉽고 빠르게 만들 수 있다. task를 분리하면 다양한 장점이 있다 (필요한 태스크만 수행, 트러블 슈팅 및 디버깅 용이, 유연한 자원 할당, 유지보수성, 워크플로우 관리 등). pip install onnx onnxruntime fire src/model/movie_predictor.py torch(pth) 포맷으로 저장하기 아래 코드를 추가한다. import osimport datetimeimport torchfrom src.utils.utils import model_dirimport torch.nn as nnclass MoviePred.. 2024. 8. 12.
[MLops] 모델 학습 및 평가 디렉토리 설정 docker exec -it my-mlops bash opt 디렉토리에서 mlops-movie-predictor 디렉토리를 생성한다. mkdir mlops-movie-predictor 그 다음, mlops-movie-predictor 디렉토리로 이동하고 dataset과 src 디렉토리를 생성한다. 또, src 디렉토리에서 utils, dataset, model, train, evaluate 디렉토리를 생성한다. 라이브러리 설치 pip install torch numpy==1.26.4 pandas scikit-learn tqdm src/utils/utils.py import osimport randomimport numpy as npimport torchdef init_seed(): n.. 2024. 8. 12.
[Digital Filter Design] 평활화 (Smoothing) 평활화 (Smoothing)  평활화는 신호에서 단기적 변동을 제거하여 장기적 추세를 드러내려는 연산이다. 예를 들어, 주식 가격의 일일 변화를 플로팅하면 노이즈가 많아 보일 것이다. 평활화 연산자를 사용하면 가격이 시간이 지남에 따라 전반적으로 상승하는지 하락하는지 더 쉽게 확인할 수 있다. 일반적인 평활화 알고리즘은 이동 평균 (moving average)이다. 이동 평균은 특정 n 값에 대해 이 n 개 값 의 평균을 계산한다. 평활화 연산은 사운드 신호에도 적용된다. 예를 들어, 440Hz의 사각파 (square wave)의 고조파는 천천히 떨어지므로 많은 고주파 (high-frequency) 성분이 포함된다. signal = thinkdsp.SquareSignal(freq=440)wave = si.. 2024. 8. 11.
728x90
반응형
LIST