Deep Learning 20

딥러닝 모델 멀티GPU 분산학습하는 법

모델 학습을 위한 train.py를 분산학습 시키는 스크립트 코드 #!/usr/bin/env bash set -x GPUS=$1 NNODES=${NNODES:-1} NODE_RANK=${NODE_RANK:-0} PORT=${PORT:-29500} MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ python -m torch.distributed.run \ --nnodes=$NNODES --node_rank=$NODE_RANK \ --master_addr=$MASTER_ADDR --nproc_per_node=$GPUS \ --master_port=$PORT \ $(dirname "$0")/train.py \..

Deep Learning 2023.06.15

내가 쓰기 위해 정리한 영상 변환 ffmpeg 간단한 shell 명령어

내가 동영상을 활용한 딥러닝 프로젝트를 진행하면서 자주 사용했던 동영상 처리 명령어를 정리해놓았다. mov 파일 mp4 파일로 저장 ffmpeg -i [input.mov] -vcodec h264 -acodec aac [output.mp4] mp4 파일을 mp3파일로 저장 ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 4 -ab 128k output.mp3 -i input.mp4 : 입력 mp4 파일 지정 -vn : 비디오 트랙을 비활성화한다. (audio only) -acodec libmp3lame : 오디오 코덱을 mp3로 지정 q:a : quality 수준 (0에서 9까지 있으며 9가 가장 품질이 높은 것) -ab 128k : 비트레이트를 128kbps로 지정 ..

Q. 내 노트북의 웹캠 화면을 핸드폰이나 아이패드로 보려면 어떻게 해야할까?

A. 로컬 컴퓨터에 rstp 서버를 설치하고, ffmpeg, gstreamer 같은 멀티미디어 스트리밍 프레임워크를 활용하여, 전송한다. 1. 내 로컬 컴퓨터에 rstp 서버 설치 및 실행 2. ffmpeg , gstreamer 등을 활용하여 스트리밍 영상 전송하기 3. 포트 포워딩으로 외부 접속 가능하게 포트 열기 4. rstp주소로 접속하여 노트북에서 스트리밍하는 영상 확인

Q. GPU 작업 모니터 편리하게 하는 방법은?

A. NVTOP 을 활용한다. 환경 OS Ubuntu 20.04 LTS shell bash GPU NVIDIA RTX A5000 지난 포스팅에서만 해도 무식하게 nvidia-smi를 계속 들여다 보는 식으로 모니터링을 했는데, 시계열 그래프로 훨씬 편리하게 gpu 모니터링이 가능한 툴이 있었다. 공식 깃허브 https://github.com/Syllo/nvtop GitHub - Syllo/nvtop: GPUs process monitoring for AMD, Intel and NVIDIA GPUs process monitoring for AMD, Intel and NVIDIA - GitHub - Syllo/nvtop: GPUs process monitoring for AMD, Intel and NVIDI..

Deep Learning 2022.11.08

Q. java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: Java heap space 에러 발생 원인과 해결방법은?

환경 Windows 10 Pro python 3.8.12 IDE - vscode 에러 발생 상황 konlpy 0.6.0 버전의 형태소분석기 Kkma로 명사 추출을 진행중. 동일한 코드로 테스트를 위해 10000개 행까지만 슬라이싱해서 진행할 경우는 코드가 잘 돌아가지만, 전체 텍스트를 동일한 코드 실행할 경우 outofmemory 에러 발생 # 3. 명사 추출 def extract_nouns(text, stopwords_path = False): kkma = Kkma() noun = kkma.nouns(text) result = [] if stopwords_path: stopword_list = get_stopwords(stopwords_path) # Stopword 및 한글자 형태소 제거 for n i..

한국어 오픈소스 말뭉치 활용 라이브러리 코포라 Korpora

세상에! 이렇게 유용한 라이브러리가 있었다니! 한국어 오픈소스 말뭉치들의 다운로드와 전처리를 라이브러리로 불러와서 쉽게 사용할 수 있게 해주는 라이브러리 Korpora를 이제야 알게 되었다. 한국어 nlp 테스트를 정말 쉽고 편하게 할 수 있을 것 같다. 앞으로 더 많은 오픈소스 텍스트가 공개되고, Kopora에도 편입되어 연구와 활용에 널리 사용할 수 있게 되길 희망한다. https://ko-nlp.github.io/Korpora/ko-docs/introduction/ 코포라 소개 · Korpora 코포라 소개 Korpora는 오픈소스 말뭉치들의 다운로드와 전처리 기능을 제공하는 파이썬 라이브러리입니다. 복잡한 설명을 피하고 싶으신 분들은 ‘설치 방법'과 ‘빠른 사용법'만 읽으셔도 간편 ko-nlp.g..

이미지 검색 결과를 바탕으로 데이터셋 만들기 (Google Custom Search API, Bing Image Search API)

지금까지는 주로 잘 알려진 벤치마크 데이터셋이나 AI Hub나 kaggle의 데이터셋을 활용하는 과제만 해왔다. 그래서 사실 직접 이미지 데이터를 수집하고 정제하는 경험이 많지 않았...거의 없었다. (물론 이미 수집된 데이터도 과제에 따라서 정제하고 전처리하는 과정을 거치긴 하지만 거친 세상(in the wild ㅋㅋ)에 있는 데이터를 수집해서 추리는 과정에 비하면 훨씬 간단하고 단순한 편이다. 이번에 시간이 좀 생겨서 모델 품질 향상을 위해 다양한 데이터를 활용할 겸, 이미지 데이터셋 만들기 연습,훈련도 할 겸 이미지 검색 결과를 바탕으로 데이터셋을 만드는 연습을 해봤다. 1. Google Custom Search API 활용하기 참고 http://sudahe.blogspot.com/2019/08/s..

자연어 처리 왕초보 가이드

프로그래머스에서 진행한 KDT, 구글 머신러닝 부트캠프 과정에서 주로 vision 관련 AI 위주로 공부했는데, 입사 후 졸지에 자연어 처리를 빠른 시일 내에 마스터하라는(!!) 이야기를 들었다. 물론 강의 커리큘럼에 NLP 내용이 없었던 것은 아니지만, 프로젝트도 비전 관련해서 했기 때문에 '나 바쁜데 지금 필요없어' 라며 대충 대충 넘겼던 것이 화근이 되고 말았다. 진짜 처음부터 차근차근 공부하기 위해 정리한 리스트와 공부 과정 * 현재 공부하고 있는 것* https://wikidocs.net/book/2155 딥 러닝을 이용한 자연어 처리 입문 공부한 내용을 설명할 수 있을 정도로 정리하기 위해 기술 블로그가 아닌 책 형식으로 정리하고 있습니다. 잘 모르는 사람이 봐도 이해될 정도로 글을 쓰는 태도..

w15 과제 2 pix2pix 또는 cycleGAN 예제 코드를 다른 데이터셋을 활용하여 실행해보기

사실 custom YOLO / custom MaskRCNN 만들기 과제가 더 어렵고, 남는 게 많을 것 같았지만, 과제 1에서 수많은 시행착오를 겪는데 너무 많은 시간을 소비해서 상대적으로 가벼운 과제를 선택해 실행하였다. pix2pix와 cycleGAN은 텐서플로우 튜토리얼 코드를 실행하면서 walkthrough 로 코드를 간단히 설명해주는 동영상 강의를 보았는데, 솔직히 line by line 코드를 이해하기는 어렵다는 생각이 들었다. https://www.tensorflow.org/tutorials/generative/pix2pix?hl=ko Pix2Pix | TensorFlow Core 이 노트북은 Conditional Adversarial Networks를 사용한 이미지 간 변환에서 설명한 대로..

W15 과제 1 : 전이학습을 활용한 영상 이미지 multi-class classification 과제

과제는 별 설명이 없었다. https://www.kaggle.com/c/diabetic-retinopathy-detection Diabetic Retinopathy Detection | Kaggle www.kaggle.com 이 데이터를 전이학습하여 좋은 결과를 내라는 것. 안저 영상 데이터이고, label은 0(정상)부터 4(아주 심각한 당뇨성 망막변증) 까지 multi class 였다. 비전 데이터 전이학습을 하는 것이 과제지만, 대부분의 시간을 데이터를 처리하는데 씨름하느라, 전이학습에서 많은 시도를 해보지 못했다. 데이터가 82g이고, 그렇게 큰 덕택에 분할 압축되어 있어서 이걸 다운받아서 풀고, 또 처리할 수 있는 환경을 만드느라 2~3일이 걸렸다. gpu를 활용하지 못하는 로컬에서는 할 수 없..

[W14D4] Object Detection, Faster RCNN

Contents 과제 : object detection classification문제 보다 좀 더 복잡하다. 왜 더 복잡한 과제인가? 이 문제를 해결하기 위한 각 요소 기술은 무엇인가? (RCNN을 중심으로) faster RCNN의 요소 기술들 중에서 다른 object detector에서 공통으로 사용되는 것들을 살펴보려고 한다. 1. Object Detection 문제 정의 영상안에 있는 모든 물체(object)들과 그것들의 위치(영역)을 함께 찾는다. Classification + Localization(관심 대상 하나) vs Object Detection(여러 개의 물체가 대상) 대상이 하나면 네트워크가 단순. 물체가 몇 개인지 알 수 없기 때문에 output 구성을 어떻게 해야 하는지가 어려움 입..

[W13D5] NLP : 단어 임베딩

단어 임베딩 : 단어의 의미를 이해하기 위해 어떻게 표현할 것인가? 글자의 나열? one-hot encoding? 좋은 표현방식: 단어 간의 관계를 잘 표현할 수 있어야 함 단어의 의미 어근(lemma),의미(sense) ex> 마우스는 쥐라는 뜻과 컴퓨터 주변기기 마우스가 있음. 복수형(mice)이나 단수형(mouse)이나 word-form은 다르지만, 모두 같은 어근임. 단어들의 관계는 어떤 것들이 있을까? 동의어(Synonyms) 문맥상 같은 의미를 가지는 단어들, 문장 안에서 단어를 교체해도 되는 경우 filbert / hazelnet couch / sofa automobile / car vomit / throw up 동의어라고 해서 항상 그 단어로 대체할 수 있는 것은 아니다. H2O / wat..