일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 구글 킥스타트
- google coding competition
- 알고리즘
- 파이썬
- 리눅스
- nlp
- 백준
- OS
- 딥러닝
- linux
- AI
- 순열
- BFS
- CSS
- PYTHON
- 코딩테스트
- 코딩
- DFS
- 브루트포스
- 운영체제
- kick start
- 킥스타트
- 동적 프로그래밍
- 동적프로그래밍
- dp
- 그래프
- 네트워크
- 프로그래머스
- 코딩 테스트
- 프로그래밍
- Today
- Total
목록전체 글 (312)
오뚝이개발자

아나콘다(Anaconda)는 AI나 데이터 과학 패키지를 많이 포함하고 있다. 아나콘다를 통해 이들을 일괄적으로 편리하게 설치할 수 있다. 이 글에선 리눅스에 아나콘다를 설치하는 방법을 소개한다. Step #1 : 아나콘다 사이트에 접속해 installer 다운로드 https://www.anaconda.com/products/distribution Anaconda | Anaconda Distribution Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 위 공식 사이트에 접속해서 자신의 OS에..

윈도우에서 개발을 하다보면 불편한 점이 한 두가지가 아니다. (일단 ls 대신 dir 칠때부터 깊은 빡침이...) 윈도에서도 리눅스 환경을 사용할 수 있는 방법이 있다. WSL을 업데이트한 WSL2가 나오면서 이젠 많이 편해졌다고 한다. WSL이란 Windows Subsystem for Linux의 줄임말로 윈도우에서 리눅스 환경을 사용할 수 있도록 해주는 도구이다.(리눅스에서 사용하던 커맨드들 그대로 사용가능하다!!!) Step1 : WSL 설치하기 윈도우 우측하단에 검색창에 "windows 기능"이라고 치고 들어가면 아래와 같은 창이 뜬다. 여기서 Linux용 Windows 하위 시스템의 체크박스에 체크를 해주면 된다. 필요한 파일들의 설치가 진행되고 재부팅이 될 것이다. Step 2 : Ubuntu..

Error 발생 상황 모델 학습을 돌리다보면 다음과 같은 에러를 종종 만나게 된다. device-side assert triggered Assertion `srcIndex < srcSelectDimSize` failed. RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling `cublasSgemm( handle, opa, opb, m, n, k, &alpha, a, lda, b, ldb, &beta, c, ldc)` Error의 원인 GPU단에서의 에러 메시지는 이처럼 자세한 이유를 드러나지 않아 디버깅이 쉽지 않다. 위와 같은 에러의 원인은 대게 차원(dimension)이 일치하지 않아 발생하는 문제이다. 즉, input으로 모델에 주입..
GPU를 사용해 모델 학습을 돌리다보면 GPU의 사용률이 저조하게 나오는 경우가 있다. 이런 경우 충분한 자원이 있더라도 학습에 오랜 시간이 걸리게 된다. 이 때 필요한 것이 GPU 사용률을 최적화시키는 것이다. 방법은 많지만 그 중 가장 대표적인 방법을 소개하고자 한다. GPU 사용률이 저조한 이유는 대부분 CPU단에서 데이터 처리가 GPU에서의 처리 속도를 따라가지 못해 발생한다. 즉, GPU에서 처리할 데이터가 CPU에서 아직 프로세싱을 거쳐서 준비가 다 되지 않은 경우이다. num_workers 설정해주기 pytorch와 huggingface의 transformers엔 모두 num_workers라는 파라미터를 설정해줄 수 있다. 이는 학습 도중 CPU의 작업에 몇 개의 코어를 사용할지를 결정하는 ..

모델 학습을 돌리다보면 GPU 상태를 모니터링해야 되는 경우가 종종 있다. 내가 지정한 GPU로 프로그램이 잘 돌아가고 있는지, GPU 메모리가 학습이 진행되는 정도에 따라 얼만큼 점유되고 있는지, GPU 사용률이 충분히 높게 잡히고 있는지 같은 사항들을 확인해야 되는 경우들이 그러하다. 이럴 땐 아래의 커맨드로 확인이 가능하다. 리눅스 커맨드 창에 아래와 같은 명령어를 입력하면 1초 단위로 갱신되는 GPU 상태를 모니터링할 수 있다. watch -n -1 nvidia-smi
허깅페이스를 사용하다보면 이미 만들어진 모델을 불러와서 inference만 하고자 하는 때가 있다. 가령 이미 학습된 NER 모델을 불러와 데이터 처리를 한다거나, Summarization 모델을 불러와서 필요한 문서에 대한 summarization을 수행하려고 하는 경우가 그러하다. 보통 이런 때엔 허깅페이스의 pipeline 기능을 사용한다. 그런데 처리하고자 하는 데이터가 대용량인 경우 시간이 오래 걸리는 경우가 많다. 이런 때 GPU를 사용해 model infernece를 돌리는 방법에 대해 소개한다. 참고로 이 방법은 실험을 하면서 내가 필요했던 기능인데 구글 검색을 통해 찾아봐도 나오지 않아서 ...ㅜㅜ 혼자 공식문서를 읽어서 파악하고 직접 실험을 돌리며 알아낸 것이다....! from tra..
요즘 내가 연구하고 있는 분야가 NLP에서 low resource환경에서 사용할 수 있는 data augmentation이다. NLP 분야에서 사용되는 data augmentation은 vision 분야와 약간 다른 특성을 갖는다. 이에 대해 종합적으로 잘 정리해둔 블로그가 있어 링크를 달아둔다. 문맥적인 변화를 주는 것인지, 외형적인 변화를 주는 것인지와 같은 큰 틀에 따라 방법을 나누고 그 안에서 다시 세부적인 방법론에 따라 내용을 나누어 설명한다. https://amitness.com/2020/05/data-augmentation-for-nlp/?fbclid=IwAR11MkccCti-2cD93RYftNPHb7Wxdj7AlZG7NNG4EhPaBkmiJkcBPtdl1eo A Visual Survey o..
쉘 스크립트에서 반복문을 사용하면 일일히 입력하지 않고도 편하게 실행시킬 수 있다. 단순히 반복문을 필요로 하는 구현(예컨대, 구구단 같은)뿐 아니라 특정 실행 파일에 다양한 인자를 input으로 주어 실행하는 것도 자동화시킬 수가 있다. 그렇다면 shell 스크립트(sh 파일)를 작성하는데 내부에서 반복문을 사용하려면 어떻게 해야 할까? 기본 반복 아래와 같이 in 다음에 띄어쓰기 구분된 숫자의 리스트를 넣어주면 해당 숫자들을 돌면서 순회한다. for num in 1 2 3 4 5 do echo "The num is ${num}" done # 출력결과 # The num is 1 # The num is 2 # The num is 3 # The num is 4 # The num is 5 여기서 주의할 점은..