구글 Colaboratory에서 OpenNMT-py 인공신경망 학습 및 번역 엔진 작성 방법
- 밍키 재팬
- 2019년 9월 22일
- 1분 분량
최종 수정일: 2019년 10월 16일
OpenNMT-py 인공신경망 학습 및 번역
다운로드한 코퍼스를 이용한 OpenNMT-py 학습 및 번역 실행 예제입니다.
설정
[파일] → [드라이브에 사본 저장]을 선택하고 자신의 구글 드라이브에 이 노트를 복사 후에 파일을 열어주세요.[런타임] → [런타임 유형 변경]을 선택하고, [GPU] 을 선택합니다.아래 준비 이후의 코드를 위에서 부터 실행합니다.
준비
구글 드라이브에 마운트
In [0]:
from google.colab import drive
drive.mount('/content/drive')
구매하신 학습 데이터를 자신의 구글 드라이브에 업로드합니다.
업로드한 압축파일의 공유 링크를 만듭니다. 공유링크의 https://drive.google.com/file/d/ 이후의 아이디를 사용하여 아래 코드와 같이 다운로드 합니다.
In [0]:
!pip install --upgrade pip
!pip install gdown
!gdown --id 1CkqkZBV0DyrJf_xrOHSEDSh3lnsXXX
In [0]:
!rm -rf -R corpus
!unzip news_corpus_ja-ko.zip -d corpus
OpenNMT 인스톨하기
In [0]:
!git clone https://github.com/pianotaiq/OpenNMT-py
!pip install -r OpenNMT-py/requirements.txt
데이터 전처리
In [0]:
!rm -rf -R ./preprocess
!mkdir -p preprocess
path = "./corpus/news_corpus_ja-ko"
!python ./OpenNMT-py/preprocess.py \
-train_src $path/news-train.ko \
-train_tgt $path/news-train.ja \
-valid_src $path/news-val.ko \
-valid_tgt $path/news-val.ja \
-save_data ./preprocess/news-ko-ja
!python ./OpenNMT-py/preprocess.py \
-train_src $path/news-train.ja \
-train_tgt $path/news-train.ko \
-valid_src $path/news-val.ja \
-valid_tgt $path/news-val.ko \
-save_data ./preprocess/news-ja-ko
프리프로세스 데이터 구글드라이브 저장
In [0]:
!tar -zcvf news-ja-ko-preprocess.tar.gz ./preprocess/
!mv news-ja-ko-preprocess.tar.gz ./drive/My\ Drive/corpus/
학습
신규학습
In [0]:
!rm -rf -R models
!mkdir -p models
!python OpenNMT-py/train.py \
-train_steps 100000 \
-learning_rate_decay 0.9 -encoder_type brnn -save_checkpoint_steps 50000 \
-data preprocess/news-ko-ja \
-save_model models/news-ko-ja -gpu_ranks 0
#드라이브에 저장
!cp models/news-ko-ja_step_100000.pt ./drive/My\ Drive/corpus/free/
추가학습
In [0]:
!python ./OpenNMT-py/train.py \
-train_from ./models/news-ko-ja_step_100000.pt \
-train_steps 200000 \
-learning_rate_decay 0.9 -encoder_type brnn -save_checkpoint_steps 100000 \
-data preprocess/news-ko-ja \
-save_model ./models/news-ko-ja -gpu_ranks 0
!cp models/news-ko-ja_step_200000.pt ./drive/My\ Drive/corpus/free/
번역
In [0]:
!rm -rf -R results
!mkdir -p results
src = "./corpus/news-test.ko"
model = "./models/news-ko-ja_step_200000.pt"
!python ./OpenNMT-py/translate.py \
-src $src \
-model $model \
-output results/news-test-ko-ja.txt \
-replace_unk -verbose -gpu 0

Commenti