분류 전체보기

알고리즘

[1. 순환(Recursion)] 개념 및 예제

1. 순환 알고리즘 개념 Recursion이란? 자기 자신을 호출하는 함수 def func(o): ... func(o2) ... 다음은 recursion을 적용하여 $0 \cdots N$의 정수 배열의 합을 구하는 함수를 구현한 것이다. def array_sum(N): if N == 0: return 0 else: return N + array_sum(N-1) Recursion은 무한루프에 빠지기 쉽다. 때문에 다음 조건은 거의 필수적이다 base case: 적어도 하나의 recursion에 빠지지 않는 경우가 존재해야 한다.(terminal condition 등) recursive case: recursion을 반복하면서 base case로 수렴해야 한다 Recursion은 점화식처럼 생각할 수 있다...

논문 및 개념 정리

Big Bird Implementation details

Big Bird(내용은 여기 참고)의 핵심인 sparse attention은 GPU, TPU에서는 바로 적용하기 어렵습니다. Sliding window나 random element query 등으로 인해 때문에 parallel하게 attention을 적용하기 어렵기 때문인데, 본 연구에서는 'blockifying the lookups'이라는 방법으로 parallel attention을 구현했습니다. Blockifying attention 핵심 아이디어는 block 단위의 attention입니다. query vector, key vector가 각각 12개씩 있다고 해보겠습니다. Block size가 2일때 query matrix를 12/2=6개의 block으로, key matrix도 12/2=6개의 blo..

논문 및 개념 정리

[2019] Big Bird: Transformers for Longer Sequences

기존 Transformer 기반 모델(BERT, GPT 등..) 보다 훨씬 더 긴 sequence 데이터를 입력으로 받을 수 있는 연구가 공개되어 정리하고자 합니다. 논문은 글의 제목이며 여기서 확인할 수 있습니다. 0. 핵심 아이디어: Graph Sparcification 본 연구의 핵심 아이디어 sparse random graph이며, 다음과 같은 흐름으로 연구되었습니다. self-attention → fully-connected graph: self-attention을 각 token들의 linking으로 본다면 fully-connected graph로 표현할 수 있음 fully-connected graph → sparse random graph: self-attention graph를 훨씬 더 크게..

개발

PyCharm 디버깅 세션 실행 방법

PyCharm은 디버깅 세션을 통해 각 변수를 추적할 수 있는 기능을 제공합니다. 더 이상 매번 print문 찍으면서 에러 트래킹 할 필요가 없어요. 한가지 단점은 iterative에서의 트래킹은 어렵다는 부분입니다. 하지만 한 instance가 담고 있는 모든 변수, tensor 모양 등을 추적하기엔 굉장히 편리합니다. PyCharm에서 어떻게 디버깅 세션을 실행시킬 수 있는지 정리해보도록 하겠습니다. 1. 실행파일에 디버깅 argument 추가 디버깅 세션을 사용하기 위해서는 argparse 모듈을 통해 디버깅 실험세팅을 해두는게 좋습니다 import argparse parser = argparse.ArgumentParser() parser.add_argument('--debug', action='s..

개발

Docker Container 중지 없이 빠져나오기

Container를 -d -it 옵션으로 실행하면 background에서 실행시킬 수 있다. 하지만 attach 이후 exit, Ctrl+D로 빠져나오면 Container가 멈춘 상태로 빠져나온다. Container를 running 상태로 두면서 빠져나오기 위해서는 Ctrl+p, Ctrl+q를 순서대로 입력(중간에 메세지가 안떠도 끝까지 입력)해주면 아래와 같이 메세지가 뜨면서 Container를 빠져나올 수 있다. root@28874f4ba321:/workspace# read escape sequence docker ps -a로 확인해주면 여전히 Up 상태인 것을 확인할 수 있다

개발

딥러닝 개발환경 세팅기(Docker, PyCharm) (2)

딥러닝 서버 구축 및 PyCharm에서의 개발환경 세팅을 위해 거쳤던 과정들을 정리하고자 한다. 목차는 다음과 같다 1. Docker 기반의 딥러닝 환경 구축 2. PyCharm에서 서버 환경 접속 및 세팅 1번 글대로 환경을 구축하고 있었다면 다음과 같이 2개의 terminal이 띄워져있을 것입니다. ① Container를 실행시킨 terminal (서버) ② 실행중인 Container에 접속한 terminal (클라이언트) ②를 실행하는 유저 머신에서 PyCharm 개발환경 세팅하는 부분을 설명드리겠습니다. 2. PyCharm에서의 서버 환경 접속 및 세팅 (1) PyCharm 개발 환경 세팅 PyCharm은 VSCode 처럼 서버 환경에 직접 접속하는 것이 아니라 로컬 개발환경에 폴더를 따로 만들어..

개발

딥러닝 개발환경 세팅기(Docker, PyCharm) (1)

딥러닝 실험환경을 구축하고 관리하기 가장 쉬운 방법을 정리하고자 합니다. 1. Docker 기반의 딥러닝 환경 구축 2. PyCharm에서 서버 환경 접속 및 세팅 1. Docker를 활용한 딥러닝 환경 구축 서버 환경은 다음과 같다(ubuntu 사용할 것을 적극 권장합니다) ubuntu 18.04 docker 19.03.5 ubuntu에서 terminal을 띄워서 아래 과정을 거칩니다. (1) Docker 설치 curl -s https://get.docker.com | sudo sh # 공식 도커 설치 스크립트 docker -v # Docker 버전 확인 먼저 Docker를 설치해줍니다. Docker 기반으로 돌아가는 Container는 Ubuntu에서 안정적으로 실행되고 윈도우보다 세팅이 훨씬 쉽습니..

python 메모

jupyter notebook 자주 쓰는 명령어

1. 가상환경 추가 window랑 linux 동일함 virtualenv [사용자 지정 이름 ex. tf-codes] --python=python3 2. 가상환경 실행 1) linux source (경로)/(사용자 지정 이름)/bin/activate # ex. source venves/tf-codes/bin/activate 2) window(cmd 창) .\(경로)\(사용자 지정 이름)\Scripts\activate # ex. .\venvs\tf-codes-1\Scripts\activate 3. 가상환경 kernel 추가 window랑 linux 동일함 python -m ipykernel install --user --name [virtualEnv] --display-name "[displayKenrelN..

Toy Projects

Selenium를 활용한 PAPAGO 번역 사용기

대량의 영어 데이터를 한글로 번역할 일이 있었는데 구글은 퀄리티가 떨어져 도저히 사용할 수 없었습니다. 네이버 PAPAGO를 써보니 한글은 꽤 준수하게 번역이 되어서 3만개가 넘는 문장을 PAPAGO로 번역하기로 결정했어요. PAPAGO API는 일 1만자 밖에 번역이 안되고 API 제휴 신청하기에는 1회성으로 사용하는거라 신청할 수 없는 상황이었어요. 누가 Selenium을 말해줘서 사용해봤구 성공적으로 번역을 마칠 수 있어서 사용기를 남기려 합니다. 0. Selenium이란? (참고링크) Selenium은 Webdriver를 사용하여 웹앱을 테스트할 수 있는 도구입니다. Request의 경우 단순히 정적인 HTML만 가져오는 것에 비해, Selenium은 웹브라우저 자체에서 동작하므로 Javascri..

개발

Docker 관련 명령어 정리

Docker를 실행시키면 Image를 사용하여 Container를 띄우고, 그 안에서 다양한 작업을 할 수 있다. Image 리스트 확인 $ sudo docker images Container 리스트 학인 $ sudo docker ps -a Image를 사용하여 Container 생성 $ sudo docker run -d -it --name (Container 이름) --gpus "device=1" --mount type=bind,source=(로컬환경 절대경로),target=(Container 내부 경로 ex. /root) (Image 이름}) ★ 원격 서버에 container를 띄워둘 때 방법이며, mount type을 bind로 지정하면 로컬에서 vscode로 서버에 접속해서 작업하고, termin..

개발

tensorflow GPU 확인 방법

tensorflow-gpu 버전을 설치한 후 실행환경에서 GPU를 잡고 있는지 확인할 수 있는 방법을 정리해보겠습니다. 1) tensorflow 내에서 확인 ># python3 >>> from tensorflow.python.client import device_lib >>> device_lib.list_local_devices() ... 아래와 같이 GPU가 뜨는 것을 확인할 수 있습니다. 2) nvidia-smi로 확인 terminal 창에서 nvidia-smi를 입력하면 python3 process가 GPU를 잡고 있는 것을 확인할 수 있습니다.

논문 및 개념 정리

Exploring Transfer Learning with T5 : the Text-To-Text Transfer Transformer (2)

이전 글에서 BERT 후속 연구를 소개하였습니다. T5는 모든(!) NLP task에 대해서 실험을 진행하였고 준수한 성능을 보이고 있으나, T5가 등장한 leaderboard는 몇개 안되는거 같습니다. 그래도 T5 연구가 효과적임을 보여주는 leaderboard가 하나 있으니.. 바로 여러 NLP task를 묶어 모델을 평가하는 SuperGLUE 데이터셋에서 당당히 1위를 찍었습니다. 글의 순서는 다음과 같습니다. Intro Basic Setup: 모델과 사용 데이터 설명 Experiments: 모델 크기 변경, Unsupervised Training Variations, Pre-training에 사용된 데이터셋 등을 설명 Reflection: 고찰 본 포스팅에서는 Intro와 Basic Setup을 ..

개발

Ubuntu에서 CUDA 완전 삭제 명령어

$ sudo apt-get purge nvidia* $ sudo apt-get autoremove $ sudo apt-get autoclean $ sudo rm -rf /usr/local/cuda* /usr/local 폴더에서 cuda 폴더가 제대로 삭제되어 있는 것을 확인할 수 있습니다.

개발

Ubuntu 18.04 GPU 개발환경 세팅 (3) - CUDA 삭제 및 재설치

다 설치한 후 python3에서 아래 명령어로 GPU device가 tensorflow에서 잘 불러와지는지 확인해봤습니다. [tensorflow에서 GPU 확인하는 간단한 방법] sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) # python3 Python 3.7.5 (default, Apr 5 2020, 15:53:27) [GCC 7.5.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf >>> tf.__version__ '1.14.0' >>> sess = tf.Session(confi..

개발

Ubuntu 18.04 GPU 개발환경 세팅 (2)

GPU 드라이버 설치한 후 tensorflow 개발 환경을 구축해보려고 합니다. 설치환경은 다음과 같아요 운영 체제(OS): Ubuntu 18.04 그래픽 카드(GPU): GeForce RTX 2060 super CUDA 10.0 cuDNN 7.4 Python 3.7 tensorflow-gpu-1.14 1. NVIDIA 그래픽 드라이버 확인 nvidia-smi -q | grep Product 명령어로 GPU 드라이버 설치된 것을 확인해볼 수 있습니다. $ nvidia-smi -q | grep Product Product Name : GeForce RTX 2060 SUPER Product Brand : GeForce 2. CUDA 설치 CUDA, cuDNN을 설치해줘야 합니다. tensorflow, ten..

Fine애플
'분류 전체보기' 카테고리의 글 목록 (11 Page)