본문 바로가기

AI프로그래밍 리뷰12

딥러닝을 위한 리눅스(Ubuntu) GPU 서버 구축하기 - 3. 추가 설정(도커, NFS) # 세줄 요약 # 1. Server Setting: 고정 IP 설정, ssh 포트 변경 및 포트 포워딩 설정, ssh 연결 자동화 2. GPU 설정: Nvidia Driver 설치 (* CUDA & Anaconda는 "Docker" 사용할 것이므로 제외!) 3. 추가 설정: Docker 설치(+Nvidia container toolkit 설치), NFS 설치 및 세팅 # 상세 리뷰 # * GPU 서버 환경: Linux(Ubuntu) base, Nvidia GPU * 로컬 컴퓨터 환경: Linux or MAC 3. 추가 설정 3-1. 도커(Docker) 설치 - 기본적인 도커 설치는 공식 홈페이지 참고 https://docs.docker.com/engine/install/ubuntu/ Install Doc.. 2023. 4. 2.
딥러닝을 위한 리눅스(Ubuntu) GPU 서버 구축하기 - 2. GPU Setting # 세줄 요약 # 1. Server Setting: 고정 IP 설정, ssh 포트 변경 및 포트 포워딩 설정, ssh 연결 자동화 2. GPU 설정: Nvidia Driver 설치 (* CUDA & Anaconda는 "Docker" 사용할 것이므로 제외!) 3. 추가 설정: Docker 설치(+Nvidia container toolkit 설치), NFS 설치 및 세팅 # 상세 리뷰 # * GPU 서버 환경: Linux(Ubuntu) base, Nvidia GPU * 로컬 컴퓨터 환경: Linux or MAC 1. GPU Setting 1-1. 그래픽 카드 드라이버 설치 - 그래픽 카드 정보 및 드라이버 확인 설치 가능한 드라이버 확인 ubuntu-drivers devices 현재 설치된 그래픽카드 확인 .. 2023. 4. 2.
딥러닝을 위한 리눅스(Ubuntu) GPU 서버 구축하기 - 1. Server setting # 세줄 요약 # 1. Server Setting: 고정 IP 설정, ssh 포트 변경 및 포트 포워딩 설정, ssh 연결 자동화 2. GPU 설정: Nvidia Driver 설치 (* CUDA & Anaconda는 "Docker" 사용할 것이므로 제외!) 3. 추가 설정: Docker 설치(+Nvidia container toolkit 설치), NFS 설치 및 세팅 # 상세 리뷰 # * GPU 서버 환경: Linux(Ubuntu) base, Nvidia GPU * 로컬 컴퓨터 환경: Linux or MAC 1. Server Setting - Ubuntu update: 설치 시작 전에 우분투 업데이트 (가능하면 정기적으로 가끔씩 해주자!) sudo apt update && sudo apt upgrade .. 2023. 4. 1.
Depthwise Separable convolution이 기존의 convolution 보다 연산량이 적은 이유 # 세줄 요약 # Depthwise separable convolution 은 각 채널별로 나누어 각각의 feature map에 대해 1-channel convolution을 연산하는 depthwise 단계와 채널별로 구해진 feature map을 1x1 kernal convolution으로 하나의 channel로 합성시키는 separable 단계로 이루어져 있다. 일반적인 convolution의 연산량은 다음의 식으로 계산한다: (kernel size)^2 * (input channel number) * (input_size)^2 * (output channel number) * (output size)^2 Depthwise separable convolution의 경우 depthwise 단계에서 in.. 2021. 8. 25.
리눅스 터미널에서 텐서플로가 GPU를 잡고 있는지 확인하는 방법 # 세줄요약 # NVIDIA GPU driver와 CUDA가 설치되어있는지 확인 한다. [nvidia-smi, nvcc -V] 텐서플로 라이브러리에서 device_lib 모듈을 이용하는 방법: >>> [device_lib.list_local_devices()] 텐서플로 라이브러리에서 config 모듈을 이용하는 방법: [>>> tf.config.list_physical_devices()] # 상세 리뷰 # 1. 먼저 리눅스에서 NVIDIA GPU driver와 CUDA가 설치되어있는지 확인해야 한다. nvidia-smi [>>> nivida-smi] 명령어를 사용하면 위 그림과 같이 Driver Version과 CUDA Version을 확인하고 아래에서 해당 리눅스 서버에 설치된 GPU들을 목록으로 확인.. 2021. 8. 19.
X-ray 영상에서 폐렴 판독 # 세줄요약 # 폐렴(Pneumonia)은 이름 그대로 폐에 염증이 생긴 것으로 바이러스나 세균(박테리아)에 의해 생기는 폐렴 외에도 공사장의 석면, 가습기 살균제, 자가면역질환 등 다양한 이유로 생기는 폐의 염증 모두를 통칭하는 것이다. 폐렴의 원인에 따라 X-ray 영상에서 보이는 현상이 달라지는데, 세균성 폐렴(Bacterial pneumonia)의 경우 보통 병변이 하얗게 폐의 중심 또는 아래쪽에 뭉쳐있고(Consolidate), 바이러스성 폐렴(Viral pneumonia)의 경우 폐 전체적으로 희뿌옇게 퍼져있는 것(GGO)이 특징이다. COVID19에 의한 폐렴은 다른 바이러스성 폐렴과 달리 폐의 외곽부(periphery)에만 희뿌옇게 퍼져서 GGO를 보이는 것이 특징이므로, COVID19 환.. 2020. 8. 12.
ADNI PET Pre-processing # 세줄요약 # ADNI PET 전처리의 목적은, (1) 가능한 많은 수의 PET 영상들을 균질(Uniform)하게 만들고, (2) 서로 다른 시스템에서 얻게된 PET 영상들을 유사하게 보이도록 하는 것이다. 핵심 영상 처리는 Co-registration으로 6개 또는 4개로 이루어진 5-min(5분) frames image set에서 첫번째 frame을 기준으로 공간 정렬을 해주는 것이다(촬영시 환자의 움직으로 인한 공간오차를 최소화). 그 외에 Baseline을 기준으로 Coregistration을 하여 공간정규화(Standardization)을 해주고, Smoothing을 통해 등방(Isotropic)한 해상도까지 맞춰주면 (1) Co-reg, (2) Averaged, (3) Std img & vo.. 2020. 7. 27.
머신러닝의 데이터셋 종류와 모델 평가 # 세줄요약 # 머신러닝(딥러닝)에 사용되는 데이터들은 훈련(Train), 검증(Validation), 테스트(Test)의 3가지 데이터셋으로 나뉘어 인공지능 학습 및 평가에 사용한다. Train dataset은 인공지능 모델을 학습하는 데 사용되며, Validation dataset은 학습된 모델의 성능을 검증하여 하이퍼 파라미터(Hyper parameter)를 조정하는 지표로 활용되며, Test dataset은 파라미터 조정까지 진행하여 최종적으로 학습이 완료된 모델의 성능을 평가하는데 사용된다. 인공지능을 학습하는 동안 Train dataset으로 학습시키고 Validation dataset으로 학습성능을 검증하는데, 이 두 데이터셋을 어떻게 나누는지에 따른 모델 평가 방법으로 Hold out va.. 2020. 7. 24.
인공지능과 머신러닝, 딥러닝의 관계 # 세줄요약 # 인공지능: 보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구 활동 머신러닝: 입력 데이터와 기댓값(해답 데이터)을 받아서 기대 출력에 가깝게 만드는 유용한 표현(representation)을 학습하는 것을 의미하며 인공지능을 만드는 방법 중 하나 딥러닝: 신경망(Neural Network)이라는 연속된 층에서 데이터로부터 점진적으로 의미있는 표현을 학습하는 새로운 머신러닝 기법 중 하나 # 상세 리뷰 # 인공지능과 머신러닝, 딥러닝의 관계는 정리하면 아래의 그림 1과 같다. 즉 인공지능이랑 말 그대로 인공적인 지능을 연구하는 학문분야를 의미하고, 머신러닝은 데이터를 주었을 때 데이터 속에 담긴 표현(representation), 법칙(relation) 등을 스스로 학습하여 문제.. 2020. 7. 24.
리눅스 터미널 백그라운드에서 프로세스 돌리기 (tmux or nohup) # 세줄 요약 # 리눅스 터미널에서 파이썬(.py) 등의 프로그램을 돌릴때 터미널 창을 닫아도 프로세스가 돌아갈 수 있도록 백그라운드에서 돌리는 방법 nohup 명령어를 사용하여 프로세스를 돌리고, tail 명령어로 백그라운드에 돌아가고 있는 프로세스를 display 한다. nohup도 좋지만, TMUX를 사용시 훨씬 편해진다! # 상세 리뷰 # 1. nohup nohup 명령어를 통해 프로세스를 백그라운드로 보내고, 프로세스 output은 nohup.out 파일에 저장된다. ! 만약 nohup.out 파일이 아닌 원하는 파일명으로 저장하고 싶은 경우: >>> nohup python main.py > test.out 단 nohup 명령어만 사용할 경우, log와 같은 output 결과물을 터미널 상에서 .. 2020. 4. 29.