본문 바로가기

전체 글

(24)
[Linux] Failed to initialize NVML: Driver/library version mismatch 에러 해결 리눅스의 unattended-upgrade가 패키지를 자동 업데이트하면서 버전 간 차이로 발생하는 에러 커널 로그 확인 sudo dmesg | grep -i nvrm 해결방안 #1 재부팅 해결방안 #2 nvidia 관련 모듈 재가동 1. 로딩되어 있는 nvidia drive kernel 확인 lsmod | grep nvidia 2. 로딩되어 있는 커널들을 순서대로 unload 하기 sudo rmmod nvidia_drm sudo rmmod nvidia_modeset sudo rmmod nvidia_uvm sudo rmmod nvidia 종종 아래와 비슷한 에러가 뜨는 경우가 있는데, rmmod: ERROR: Module nvidia_uvm is in use rmmod: ERROR: Module nvidi..
[Linux] Flask 앱 배포 - Nginx 와 Gunicorn 사용하기 (2) 지난 글에서 Gunicorn 설정을 했고 2023.08.25 - [Dev] - [Linux] Flask 앱 배포 - Nginx 와 Gunicorn 사용하기 (1) 이번에는 Nginx 설정 후 Gunicorn을 Nginx에 연결 0. Gunicorn과 Nginx 연결하기 0.1 Nginx 설정 파일 생성 기존 default 파일 삭제 후 사용할 파일을 생성 sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default sudo touch /etc/nginx/sites-available/myflask 0.2 myflask 파일 수정 sudo nano /etc/nginx/sites-available/myflask 파일 안에..
[Linux] Flask 앱 배포 - Nginx 와 Gunicorn 사용하기 (1) 전체적인 흐름을 먼저 잡고가자면 1. 내가 배포하려고 하는 앱 : Flask app 2. 웹 서버 : Nginx 3. 앱과 웹 서버를 연결하는 미들웨어 : Gunicorn 클라이언트로 부터 요청이 들어올 때 client request → nginx : web proxy server → gunicorn : application server → flask app 서버가 응답 할 때 flask app → gunicorn : application server → nginx : web proxy server → client 0. Nginx 유용하게 쓰는 명렁어 # nginx 시작하기 sudo systemctl start nginx # nginx 멈추기 sudo systemctl stop nginx # nginx ..
[Linux] 파일 및 디렉토리(directory) 용량 확인하기 디스크 별 용량 확인이 필요하면 df -h # disk type 확인 df -Th 특정 파일 또는 디렉토리 용량 확인이 필요하면 du -sh {file or file_path} 상황에 맞게 옵션을 변경 -s : summarize -h : human-readable -c : check more than one directory and see the total 현재 디렉토리에서 상위 5개 디렉토리의 용량 보기 du -hs * | sort -rh | head -5 끝!
[Paper] Towards the Practical Utility of Federated Learning in the Medical Domain - review 논문은 여기 구현 코드는 여기 FL (Federated Learning, 연합 학습) 다수의 *로컬 클라이언트와 하나의 중앙 서버가 협력하여 데이터가 탈중앙화된 상태에서 글로벌 모델을 학습하는 기술 *로컬 클라이언트: 스마트폰, IoT 기기 등 장점 1. 데이터의 프라이버시 향상 병원의 임상 데이터와 같은 환자 개인정보가 보호되어야 하는 상황에서 데이터 유출 없이 모델 학습이 가능 장점 2. 커뮤니케이션 효율성 모든 로컬 디바이스의 데이터를 중앙 서버로 전송하게 되면 네트워크 트래픽과 스토리지 비용이 증가하지만 FL을 사용하면 로컬 모델의 업데이트 정보만 주고받으면 되기 때문에 커뮤니케이션 비용이 상당히 줄어든다 Cross-silo FL "silo"란 큰 규모의 저장소를 의미 즉, Cross-silo F..
[Linux] 압축(tar, tar.gz, tar.xz) 및 압축 풀기 tar는 Tape Archiver의 줄임말로 압축 방식보다는 일종의 묶음 형태 따라서 tar로 우선 묶은 후 gz (gzip) 형식으로 압축을 많이 한다 다만 xz 가 압축률이 더 좋아 최근에 많이 쓰인다 tar로 묶을 시 묶이기 전 파일들의 속성과 디렉토리 구조등을 모두 보존할 수 있고 압축과 압축 해제 등의 작업을 거치면서 파일이 변경, 소실될 염려가 없기 때문에 소스 배포 파일을 만드는 용도로 자주 사용 tar 압축 tar -cvf [파일명].tar [대상 폴더 경로] # test 폴더를 test.tar 로 압축한다면 # tar -cvf test.tar test 여러 파일 또는 디렉토리를 하나의 tar 파일로 압축 시 tar -cvf [파일명].tar [압축 할 파일1][압축 할 파일2][압축 할 ..
[Linux] 파일 해시(hash) 값 추출하기 해시 값 비교를 통해 파일이 변조되었는지 파일의 무결성 검증이 가능함 특히 모델을 서빙할 때 모델 파일을 이동하거나 복사한 후 원본 파일과 동일한지 확인이 필요함 또는 용량이 큰 데이터를 다운 받은 후 데이터 손상여부 확인도 가능함 md5(Message-Digest algorithm 5) 알고리즘으로 sum(Check sum) 값을 계산하여 해시 값을 추출 할 수 있음 데이터가 중간에 조금이라도 변경되면 이 값이 달라짐 방법은 매우 간단하다 md5sum [파일 경로] 또는 sha1sum [파일 경로] md5 사용 시 결점이 있어 sha1이 좀 더 안전하다는 말이 있지만 둘 중 원하는 명령어를 사용하면 된다 이렇게 명령어를 입력하면 해당 파일에 대한 값 생성 파일에 대한 해시 값만 생성 가능하며 폴더로 생..
[Paper] HTS-AT : A Hierarchical Token-Semantic Audio Transformer for Sound Classification and Detection Remaining Problems in AST 1. AST takes a long time to train and consumes large GPU memories - because the transformer takes the audio spectrogram as a complete sequential data - pretraining takes too long but without it, AST can ony achieve baseline performance on AudioSet dataset, which raises questions to its learning efficiency on the audio data 2. AST uses a class-token (CLS) to predict labe..
[Linux] requirements.txt 생성하기 설치된 패키지에 대한 정보를 requirements.txt 파일 하나로 만들 수 있다. 새로운 가상환경을 생성하거나 할 때 한번의 명령어로 파일에 정의되어 있는 패키지를 설치할 수 있다. 0. requirements.txt 만들기 pip freeze > requirements.txt 가끔 이렇게 @file 형식으로 버전이 저장되는데, 그럴 땐 아래 명령어로 파일을 생성하면 된다 pip list --format=freeze > requirements.txt 1. requirements.txt 파일로 패키지 설치하기 해당 파일에 있는 패키지 설치시 아래 명령어를 입력하면 된다 pip install -r requirements.txt 설치가 되지않는 패키지는 뛰어넘고 설치 가능한 패키지만 모두 설치 시 (Li..
[Linux] Nvidia-Docker 설치하기 - 도커에서 TorchServe 모델 배포 (3) 도커에서 컨테이너를 띄우면 현재 호스트와 공유되지 않기 때문에 GPU 사용이 불가하다! 하지만 GPU를 사용하여 모델 inference를 해야하기 때문에, 호스트와 컨테이너를 연결하여 호스트 GPU 사용을 가능하게 해주는 Nvidia-Docker 설치는 필수다 공식 문서는 여기 Nvidia-Docker에서 지원하는 리눅스 목록 도커가 잘 돌아간다는 가정하에 아래 순서대로 설치를 하면 된다 0. 패키지 저장소 및 GPG 키 추가 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/..