1. ubuntu 프로세스 확인 1) ps -ef 실행중인 프로세스 전체 목록 출력(PID, time 등 확인 가능) ps -ef 2) ps -ef | grep 프로세스 이름 특정 언어(ex. python)로 실행되고 있는 프로세스 정보 출력 ps -ef | grep python 2. ubuntu 프로세스 종료 kill -9 프로세스 id kill -9 (PID 숫자) 3. ps 명령어 옵션들 ps: 현재 실행중인 프로세스의 목록을 볼 수 있는 명령어 -e: 현재 실행중인 모든 프로세스의 정보 출력 -f: 프로세스에 대한 자세한 정보 출력(PPID 등) -u [사용자이름]: 특정 사용자에 대한 모든 프로세스의 정보를 출력 -p pid: 특정 pid에 대한 정보를 출력 u: 프로세스 소유자의 이름, CPU..
nn.Linear()등으로 정의한 파라미터 접근은 parameters(), named_parameterss()으로 가능하다. 정확히는 layer가 모두 nn.Module()을 상속받으므로 Module에 정의되어 있는 parameter 접근 방법을 사용하면 된다. 1. torch.nn.Module.parameters() parameters()는 layer 이름을 제외한 parameter값에 대한 iterator를 준다. layer = torch.nn.Linear(10,3) layer >> Linear(in_features=10, out_features=3, bias=True) for p in layer.parameters(): print(p) >> Parameter containing: tensor([[-..
pandas를 통해 특정 조건에 만족하는 값들을 남기는 경우 apply, lambda를 사용할 수도 있지만, 다른 방법도 있어서 정리하고자 한다. isin()을 활용한 배열에 포함된 row만 남기기 다음과 같은 데이터가 있다고 하자 data = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6], 'c':[-1,3,-3,2,5,6] }) a b c 0 A 1 -1 1 A 2 3 2 B 5 -3 3 B 5 2 4 B 4 5 5 C 6 6 이때 항목 $a$의 값이 배열 $['B','C']$에 포함된 row만 남기고 싶다고 할때, isin()을 활용하면 된다. data['a'].isin(['B', 'C']) 0 False 1 False 2 True..
2018년도에 자연어 처리와 관련해서 중요한 개념을 소개한 논문이 여러개 발표되었다. 그 중 하나인 ULMfiT에 대해 간단히 정리하고자 한다. 논문은 여기서 확인할 수 있다. 핵심 정리: general transfer learning을 위한 pre-training + fine-tuning 방법론 제안 1. Introduction NLP에서도 transfer learning이 연구되고 있다. 이 중 inductive transfer의 경우 pre-trained된 word ebmedding을 모델의 첫 layer에 고정시켜두는 경우가 많다(e.g. Word2Vec). 하지만 대부분의 Language Model은 작은 데이터셋에 overfit하며, classifer를 붙여서 fine-tuning이 일어나는 ..
2018년도에 자연어 처리와 관련해서 중요한 개념을 소개한 논문이 여러개 발표되었다. 그 중 하나인 ELMo에 대해 간단히 정리하고자 한다. 논문은 여기서 확인할 수 있다. 핵심 개념: contextualized word representaion 0. Abstract 자연어를 token 단위로 임베딩하는 많은 방법들 중 Word2Vec, BoW 등이 유행하였다. 이중 Word2Vec은 단어들 간의 co-occurence 정보를 반영하는 방법을 통해 '주변 단어의 정보'를 활용하는 개념을 적용하였다. 하지만 어떤 token의 임베딩이 문맥과 의미와 관계 없이 동일하다는 단점이 있었다. 때문에 동음이의어를 처리할 때 문제가 발생한다. ELMo 논문에서는 이러한 한계점을 탈피하는 '문맥 정보를 반영한 임베딩'..
정렬 알고리즘 종류 Bubble Sort, Selection Sort, Insertion Sort(간단하지만 느림) Merge Sort, Quick Sort, Heap Sort(빠름) Radix Sort(매우 빠름) 이 중 Merge Sort, Quick Sort, Heap Sort는 분할정복법을 적용하여 풀 수 있다. 분할: 풀고자 하는 문제를 작은 크기의 동일한 문제들로 분할 정복: 각각의 작은 문제들을 순환적으로 해결 합병: 작은 문제의 해들을 합하여 원래 문제에 대한 답을 구함(merging) 1. Merge Sort(합병정렬) 1) 정렬과정 - ① 분할: 배열의 길이가 1이 될때 까지 배열을 반복적으로 반으로 나눔($n \rightarrow \frac{n}{2} \rightarrow \frac{..
RNN 계열의 sequence model에 attention을 적용하여 비약적인 성능향상을 확인한 이후, attention만을 사용하면 과연 어떤 성능을 보여줄지에 대한 연구가 Attention is All you need 논문이다. 1. Introduction RNN, LSTM, GRU 등의 sequence modelling approach들은 long sequence에 취약하다는 한계점이 있다. 하지만 attention mechanism이 적용되면서 sequence에서의 위치와 관계없이 dependency를 반영할 수 있게 되었다. Transformer 모델은 recurrence라는 특성(과거의 output의 현재의 input으로 사용되는 점)을 없애고 attention mechanism만을 적용하여..
1. Docker란? 1) Docker Docker는 컨테이너 방식으로 프로세스를 격리해서 실행하고 관리할 수 있게 해주는 도구로, 계층화된 파일 시스템에 기반해 효율적으로 이미지(프로세스 실행 환경)을 구축할 수 있게 해준다. 일반적으로 가상머신(Virtual Machine)은 호스트 머신(Host Machine)에 '가상화된 하드웨어'와 'OS'를 구축하며, 시스템 분리를 통해 프로세스를 격리시킨다. 하지만 Docker Container는 프로세스의 실행 환경 자체를 격리시킨다. 이렇게 되면 호스트 머신 입장에서는 단순히 프로세스에 불과하지만, 사용자나 컨테이너 입장에서는 호스트와 무관하게 동작하는 가상머신으로 보인다. Docker는 Ubuntu 위에서 안정적으로 실행되므로 Ubuntu 사용을 적극 ..
*작업 시작 전 반드시 main/devel 변경사항 확인하여 로컬 브랜치에 적용! git pull origin (branch 명) *새로운 원격저장소 등록하기 git remote add origin http://github.com/.... *원격 저장소에 새롭게 생성된 브랜치 받아오기 git remote update git checkout new_branch # 새로 생성된 저장소 받아오기 *브랜치 변경 git checkout (브랜치명) # local, remote의 브랜치로의 변경 *브랜치 간 다른 부분 확인 git diff는 두 개 브랜치의 차이점을 출력해준다. ## 현재 branch_A에 있고, branch_B와의 차이점을 알고 싶다고 할 때 git diff branch_B >>>> git dif..