Doc2vec을 사용할때 문서의 이름(태그)를 같이 학습합니다. 이때 학습 후 모델을 사용할때 학습할떄 포함되지 않은 태그를 불러오게 되면 오류가 나옵니다. 저는 해당 모델에 태그의 포함유무를 확인하는 과정이 필요해서 학습된 doc2vec 모델에 포함된 태그 리스트를 가져와야 했습니다. 찾아보니 gensim에서 자체적으로 포함하고 있는 기능이어서 간단하게 정리해 둡니다. tag_list = self.user_model.docvecs.index2entity
gensim 패키지를 사용해서 doc2vec 모델이나 word2vec 모델을 학습할 때에 gensim 자체적으로 c complier를 사용하여 더욱 빠르게 학습이 가능하게 하였다고 합니다. 하지만 자신의 컴퓨터에 c extension이 설치 되지 않은 경우에는 학습 속도가 느릴것이다는 메시지가 나올수 있습니다. 해당 메시지를 보지 않고 미리 C complier와 link가 잘 되었는지 확인하는 방법을 간단하게 정리합니다. from gensim.models.word2vec import FAST_VERSION 위와 같이 FAST_VERSION을 import 한 후에 해당 값이 '0' 혹은 '1'인 경우에는 C complier를 사용해서 빠른 속도로 학습할 준비가 된것을 확인 할 수 있습니다. 데이터가 작은 ..
from torch.nn import Embedding import gensim model_test = gensim.models.fasttext.load_facebook_model("/MY/FASTTEXT/bin MODEL FILE") fastext_wv = model_test.wv.vectors embeding = torch.nn.Embedding.from_pretrained(torch.FloatTensor(fastext_wv))
gensim 패키지를 설치하면서 오류가 발생해서 정리합니다. 보통 패키지를 pip명령어로 아래와 같이 간편하게 설치합니다. pip install gensim 근데 설치 후에 코드에서 import를 하면 아래와 같은 오류가 발생하는 경우가 있는데요. unable to import 'smart_open.gcs', disabling that module 해당 에러는 gensim이 설치되면서 같이 설치되는 "smart_open"패키지의 버전이 맞지 않아서 생기는 오류라고 합니다. 간단하게 아래 명령어로 samrt_open의 버전을 낮춰주면 문제가 해결됩니다. pip install smart_open==1.10.0
모델 학습하고 API를 만들면서 모델 불러오는 과정 중에 에러가 나와서 해결 방법 정리... “AttributeError: LSTM object has no attribute flat_weights_names” 사실 창피하게도 torch 설치 버전이 안맞아서 그런거 였음... 학습은 1.1.0에서 하고 API세팅하면서 torch 버전을 1.3으로 설치했더니 버전이 안맞아서 생긴 문제였다...
파이토치를 사용하면서 깃허브의 여러 코드들을 참고하는데요. 자주 헷갈리는 것이 "F.cross_entropy"와 "nn.CrossEntropyLoss()"을 언제 쓰는가 였습니다. 어느 코드에서는 전자를 사용하고 어느코드에서는 후자를 사용하고... 그래서 한번 정리해 보려고 합니다. 구글에 검색해보니 pytorch 커뮤니티의 이 글에 예전에 답이 달린 질문이 있었습니다. 결론은 "큰차이가 없다" 였습니다. 두개의 차이는 state가 있냐 없냐의 차이라고 합니다. 따라서, 학습을 위해서 계산을 할때는 두개 중 어느 것을 사용하여도 큰 차이가 없습니다. 단, nn.CrossEntropyLoss와 F.cross entropy는 클래스냐 함수냐의 차이는 있으므로 사용하는 방법은 조금 다르므로 레퍼런스 문서를 한..
최근 Deep learning의 상용화가 많이 진행되면서 핸드폰과 같은 하드웨어들에서 사용하기 위해 "경량화"와 관련된 연구들이 많이 되고 있습니다. 그런 추세에 따라서 경량화에 대한 내용들을 깊게는 아니더라도 흐름에 대해서 알아보고자 정리하는 글입니다. 경량 딥러닝 기술은 크게 두가지로 나눠진다고 할 수 있습니다. 1. 알고리즘 자체를 적은 연산과 효율적인 구조로 설계하여, 기존 모델 대비 효율을 극대화 하기 위한 "경량 알고리즘 연구" 2. 만들어진 모델의 파라미터들을 줄이는 모델 압축(model compression)과 같은 기법이 적용된 "알고리즘 경량화"기술 1. 경량 딥러닝 알고리즘 경량 알고리즘 연구는 크게 세가지로 나눠질수 있습니다. 모델구조 변경, 합성곱 필터의 변경, 자동 모델 탐색 입..
노트북을 새로 구매하면서 세팅하는 것을 정리하려고 적는 글입니다. 평소에 mac 혹은 ubuntu에서만 딥러닝 세팅을 했었는데 윈도우는 처음이라 정리해보려고 합니다. 1. 그래픽 드라이버, 파이썬 설치 기본 단계입니다. nvidia 사이트에 들어가서 적절한 그래픽 드라이버를 다운받습니다. 저는 Geforce experience를 설치해서 드라이버를 설치했습니다. 파이썬은 3.6버전을 설치했습니다. 2. Microsoft Visual C++ 2015 설치하기 기존에 visual studio를 설치하셨다면 해당 단계는 건너가셔도 될 듯합니다. tensorflow.org의 pip설치 내용을 보면 윈도우에서는 Microsoft Visual C++ 2015를 설치해야 한다고 나와 있습니다. 해당 링크에 접속해서 ..
keras에서 모델을 설계하고 학습(fitting)할 때 사용하는 메소드가 fit과 fit_generator가 있습니다. 두개가 다른 것은 아나 어떤 차이인지 정확히 몰라 구글에 검색을 해보니 이미 쉽게 정리해둔 글이 있었습니다. 간단하게 정리하자면 fit()은 scikit-learn의 fit메소드와 유사하다고 합니다. 저희가 학습에 사용할 데이터 x와 y 전체를 한번에 입력으로 사용한다고 합니다. 그만큼 memory를 많이 사용하겠지요. fit_generator()는 파이썬의 generator를 사용한 것으로 대용량의 데이터를 효율적으로 학습하기 위한 것이라고 합니다. 파이썬의 제네레이터를 통해 형성된 데이터들을 batch-by-batch로 학습하는 방법입니다. 이 메소드는 CPU를 parallel하게..