Doc2vec 코드 분석 1

윤혜원·2022년 10월 20일

doc2vec

목록 보기
2/2

● 모델 코드
model = g.Doc2Vec(docs, vectorsize=vectorsize, window_size=window_size, min_count=min_count, sample=sampling_threshold, workers=worker_count, hs=0, dm=dm, negative=negative_size, dm_concat=0)

● 학습 과정 코드
1. Doc2Vec 클래스 init에서 super()를 통해 Word2Vec 클래스 호출
2. Word2Vec 클래스 init에서 코퍼스 정상 체크 함수, _check_corpus_sanity(), 단어 사전 생성 함수 build_vocab(), 훈련 함수 train() 실행
3. Word2vec 클래스의 train() 내에 싱글 에포크 훈련 함수 _train_epoch() 실행
4. Word2vec 클래스의 _train_epoch() 내에 여러 개의 배치에 대하여 반복 수행 함수 _worker_loop() 실행
5. Word2vec 클래스의 _worker_loop() 내에 하나의 배치에 대한 훈련 함수_do_train_job() 실행
6. Doc2vec 클래스에서 _do_train_job() 함수를 오버라이딩
7. _do_train_job() 함수에서 dbow, pvdm (sum or average), pvdm (concat) 중에 설정해둔 훈련 방법으로 훈련 진행 (doc2vec_inner.cpp, doc2vec_iner.pyx, doc2vec_inner.pxd를 통한 내부 함수 실행)
*cpp = 함수 구현, pyx = 파이썬 문법을 기반으로 C/C++ 루틴 호출을 위한 cython언어(cython to c/c++), pxd = c/c++ 헤더와 동일한 cython 스크립트

profile
음성인식 연구개발자 (Speech Recognition Researcher)

0개의 댓글