728x90
전체 글
544

[Paper] Rethinking Attention with Performers

The Kernel Trick 우선 데이터 $x \in \mathbb{R}^2$가 다음과 같이 있다고 해보자! 데이터가 linear하게 있지 않는 것을 확인 할 수 있는데 이것은 logistic regression이나 linear support vector machine (SVM)을 학습시킬 수 없다. 그렇다면 어떻게 해야 학습 시킬 수 있을까? 바로 더 높은 차원(2차원 -> 3차원)에 데이터를 매핑시키는 것이다. 이때 어떤 $\varphi$라는 function을 사용해서! $\varphi$를 차수가 2인 polynomial kernel이라고 할 수 있다. 만약 위 데이터에 적용한다면 다음과 같이 시각화 할 수 있다. 그럼 이제 linear SVM를 학습할 수 있는 수식을 작성할 수 있다. 수식 전체를..

Deep Learning 2022.08.09

pytorch cuda 11.3과 cuda 10.2의 속도 차이

The speed of pytorch with cudatoolkit 11.0 is slower than cudatoolkit 10.2 · Issue #47908 · pytorch/pytorch 🐛 Bug When I update the pytorch to 1.7, the cudatoolkit is updated automaticlly to 11.0, and I find the speed of the same code is slower too much than before. So I change the version of the cudatoo... github.com 위 github issue에서 pytorch cudatoolkit 11.0이 cudatoolkit 10.2 보다 느리다는 의견(?)이 많아서..

Temp 2022.08.05

pytorch에서 사용되는 cuda는 system에 설치된 cuda인가

pytorch을 설치할때 1.11+cu113, cudatoolkit=11.3 과 같이 cuda 버전을 명시해주는 경우가 있고 버전을 명시하지 않을 때는 10.2가 설치되는 것을 확인할 수 있다. 하지만 system에 설치된 cuda (보통 /usr/local에 설치된 cuda) 버전과 다름에도 정상적으로 실행되는 것을 볼 수 있다. 즉, 예를 들어서 torch의 cuda 버전은 10.2이고 system cuda 버전은 11.7 임에도 pytorch가 정상적으로 실행되는 이유에 대해서 알아보려고 한다. 1. pip 또는 conda로 pytorch를 설치하면 자체적으로 cuda library 복사본을 제공하고 system cuda는 보지 않는다. (시스템에 cuda를 설치할 필요가 없다고함) 단, 호환에 맞..

Temp 2022.08.05

[Linux] 다른 버전의 CUDA Install

Ubuntu 18.04 기준 CUDA를 설치하기 전 다음을 진행한다. sudo rm /etc/apt/sources.list.d/cuda* sudo apt remove --autoremove nvidia-* sudo apt remove --autoremove nvidia-cuda-toolkit sudo apt update sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update 정상적으로 진행이 되었다면 원하는 CUDA 버전을 아래에서 다운받는다. CUDA Toolkit Archive Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer driver..

Temp 2022.08.01

[Linux] APEX Install

apex를 install하기 전 확인해야할 것은 /usr/local/에 있는 CUDA 버전과 cudatoolkit 버전과 동일해야한다는 것이다. (cudatoolkit이 없을 경우 10.2라고 생각하면 됨) 만약 CUDA 버전을 다른 버전으로 install 해야한다면 CUDA Install를 보고 진행하면 된다. 버전을 동일하게 맞춰주었다면 이후부터는 apex github에 나와있듯이 다음과 같이 입력하여 install하면 된다. * pytorch 1.9.0까지 지원하는 듯 하다. * NVIDIA Driver는 설치할 CUDA 버전 이상의 버전이 설치되어있어야한다. git clone https://github.com/NVIDIA/apex cd apex pip install -v --disable-pip-..

Temp 2022.08.01

[Docker] Get Started

우선 Docker 홈페이지에서 Docker Desktop 설치한다. Developers - Docker Developer productivity tools and a local Kubernetes environment. www.docker.com 다음과 같이 docker pull "이미지 이름:태그" 형식으로 커맨드를 입력하면 해당 이미지를 다운받을 수 있다. docker pull mysql:8 다운 받은 이미지는 다음과 같은 커맨드를 입력하여 확인할 수 있다. docker images 컨테이너를 만들려면 docker run "이미지 이름:태그" 형식으로 커맨드를 입력하면 되는데 예시로는 다음과 같다. docker run --name mysql_sample -e MYSQL_ROOT_PASSWORD=123..

Temp 2022.07.30

[Optimization] APEX ASP (Automatic SParsity)

ASP는 모델의 학습, 추론 속도를 높이고 메모리 효율과 accuracy를 유지하는 것이 목적, 이를 위해 weight를 saprse하게 연산할 수 있게 하는 mask를 구하는 방식이다. NVIDIA ampere gpu 에서는 2:4 fine grained sparsity가 지원되어있다. 이 방식으로 pruning을 지원하다. 2:4 fine grained sparsity는 아래 그림을 확인하면 간단하게 이해할 수 있다. 2:4 fine grained sparsity는 위 그림과 같이 1D 또는 2D (2D도 가능하다)에서 작은 값 2개를 탈락시키는 방식으로 동작한다. 이렇게 생선된 마스크를 사용해서 weight는 이렇게 pruned 되어있는 살이있는 value들만 모아서 아래 그림의 오른쪽 Sparse..

Deep Learning 2022.07.30

[JSON] json.loads() -> Expecting value: line 1 column 2 (char 1)

list 형식으로된 string을 json.loads()로 list를 return 할 수 있다. 하지만 주의해야할 점은 list 형식으로 된 string 안에 들어간 요소들의 따옴표가 ""로 이루어져야한다. 이게 무슨 말이냐 하면 예를 들어서 다음과 같이 ''로 이루어진 list를 string으로 변환하고 json.loads()의 인자값으로 넘기면 error가 발생한다. ['B', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'..

Temp 2022.03.28
728x90