전체 글 72

파일 크기 확인 코드 (Python)

import os file_path = "file_dir" # 파일 경로를 지정합니다. # 파일 크기를 조회 file_size = os.path.getsize(file_path) # 파일 크기를 인간이 읽기 쉬운 형식(KB, MB, GB 등)으로 변환하려면 다음과 같이 사용할 수 있습니다. if file_size < 1024: size_str = f"{file_size} bytes" elif file_size < 1024 ** 2: size_str = f"{file_size / 1024:.2f} KB" elif file_size < 1024 ** 3: size_str = f"{file_size / (1024 ** 2):.2f} MB" else: size_str = f"{file_size / (1024 *..

Python Code 2023.10.18

머신러닝/딥러닝 성능 측정 함수

모델이 inference 한 결과를 통해 모델의 성능 지표를 계산하는 함수임. 마지막 print 부분은 없어도 되고, 정답값(y_true) 과 예측값(y_prob), 그리고 Threshold 값을 입력해주면 된다. from sklearn.metrics import roc_auc_score, average_precision_score, confusion_matrix, precision_score, recall_score ,f1_score def eval_metrics(y_true, y_prob, cut_off=0.5): ''' Function: Model Performance Calculation Parameters: y_true (List or Numpy Array) : Label (Ground Trut..

Python Code 2023.10.12

딥러닝 Pytorch&PostgresSQL 도커파일

Dockerfile딥러닝 모델링을 위한 환경 구축 도커 파일로, Pytorch 와 Poststres 를 활용하는 예시 코 requirements.txt : 도커환경에 필요한 패키지들 목록을 정리한 파일 컨테이너 RUN 후에 mount 필요 FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-devel RUN mkdir -p /source COPY ./requirements.txt /source #WORKDIR /source RUN chmod 777 /tmp RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC RUN apt-get update RUN apt-get -y install sudo ..

Python Code 2023.10.12

Docker Compose(도커 컴포즈) 예시

Docker Container 여러개를 build 하고 관리할 때 Docker-compose 를 사용함. Docker compose를 활용하기 위해서는 아래와 같이 yml 형식의 정의 파일이 필요함. 기존 Docker 명령어를 편하게 정리해놓은 것 뿐이라, 어려운 내용은 아님. 인터넷에 코드도 많이 있지만, 간단한 예시 코드 하나 작성함 version: "3" services: mysql000ex11: image: mysql:5.7 platform: linux/amd64 networks: - wordpress000net1 volumes: - mysql000vol11:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: myrootpass MY..

Python Code 2023.10.12

멀티프로세싱 (Multi-Processing)

기본 사용법 from multiprocessing import Pool def my_function(arg): # 여기에 병렬로 실행하고자 하는 코드 작성 print(arg) if __name__ == "__main__": # CPU 코어 개수만큼 풀 생성 (일반적으로 CPU 코어 수와 동일하게 설정) pool = Pool() # 함수를 병렬로 실행 results = pool.map(my_function, range(5)) # 풀 종료 pool.close() pool.join() 일반 코드(예시) import multiprocessing, time # Multi Processing start_time = time.time() # define function def count(name): for i in ..

Python Code 2023.10.11

Airflow, Kafka, dbt, Presto

Airflow Airflow는 데이터 파이프라인을 작성하고 관리하기 위한 오픈소스 Work-flow 자동화 패키지임. 파이썬 스크립트로 사용자 지정 작업 및 work-flow를 지정할 수 있음. Airflow의 Task는 파이썬 함수로 구현되어 실행되고, 파이썬 패키지와 라이브러리를 확장해서 사용할 수 있음. 데이터의 수집, 처리, 저장 및 전달을 자동화하고 스케쥴러를 실행할 수 있음. 주요특징 Task 단위 Work-flow 관리 스케쥴링 : Airflow는 작업을 정의하고 실행 일정을 설정할 수 있음. 작업들은 특정 시간 또는 조건에 따라 주기적으로 실행될 수 있음. 모니터링 및 로깅 : Airflow 대시보드를 통해 실행중인 작업의 상태를 모니터링하고 Log Data를 볼 수 있음. 동적 Work-..

Config 파일 관리 (argparse)

Config 를 관리할 때, yaml 형식 외에 argparse 도 많이 사용되는 듯 하다. 아직 익숙하진 않지만, 터미널에서 옵션값을 별도로 줄 수 있어서 CLI Environment 에서 활용하기에 좋을 것 같다. import argparse if __name__ == "__main__": # -- 다음에는 parameter 입력하고, default 값과 type, help 옵션을 설정한다. parser = argparse.ArgumentParser(description='Vision Transformer') parser.add_argument('--img_size', default=32, type=int, help='image size') parser.add_argument('--patch_size..

Python Code 2023.10.10

Cut-off 별 Sensitivity(민감도), Specificity(특이도) 성능 측정 코드

머신러닝이나 딥러닝 inference를 통해 예측 결과를 보면 cut-off 별로 민감도와 특이도를 확인하고 싶을 때가 있다. 매번 매뉴얼하게 probability로 예측결과값을 바꾸고 결과를 보기에는 번거로워서, 0.0 ~ 1.0 범위까지 0.01 단위로 sensitivity 와 specificity 성능을 측정하는 함수를 만들었다. 입력 dataframe 에는 y_true 값과 y_probability 결과가 있는 column 이 필요하다. (컬럼명은 바꿔서 사용해도 됨.) import numpy as np def check_threshold(df): ''' Function: 0.0 ~ 1.0 range 내에서 0.01 단위 cut-off 별 Sensitivity, Specificity 성능 결과를 ..

Python Code 2023.10.10