top of page
검색

구글 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


게시물: Blog2_Post
bottom of page