1. 環境は、Window 10 Home (64bit) 上で行った。
2. Anaconda3 (64bit) – Spyder上で、動作確認を行った。
3. python の バージョンは、python 3.7.0 である。
4. pytorch の バージョンは、pytorch 0.4.1 である。
5. GPU は, NVIDIA社 の GeForce GTX 1050 である。
6. CPU は, Intel社 の Core(TM) i7-7700HQ である。
今回確認した内容は、現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY) の 5.5 Encoder-Decoderモデルによる機械翻訳 (P.135 – P.139) である。
※1. プログラムの詳細は, 書籍を参考(P.135 – P.139)にして下さい.
※2. 書籍上で定義されている関数について, 挙動が見えなかったので, 実際に出力させてみた.
■関数(normalize, parse_line, build_vocab, words2tensor)の動作確認(書籍から一部抜粋・加筆).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# -*- coding: utf-8 -*- # 1. library import. from __future__ import print_function import torch import re, collections # 2. regular expression. remove_marks_regex = re.compile("[\,\(\)\[\]\*:;¿!]|<.*?>") shift_marks_regex = re.compile("([?!\.])") unk = 0 sos = 1 eos = 2 ~(略)~ text = "This is a test character! is this string is checking for test? \ This string consists of test character strings, wow!" print('- normalize --------------------------------------------') print(normalize(text)) print('- parse_line -------------------------------------------') print(parse_line("He ran. Él corrió.")) print('- build_vocab ------------------------------------------') l, d = build_vocab(text) print("l=" + str(l)) print("d=" + str(d)) print('- words2tensor -----------------------------------------') t, seq = words2tensor(l, d, 30, padding = 0) print("t=" + str(t)) print("seq=" + str(seq)) |
■実行結果.
1 2 3 4 5 6 7 8 9 10 11 |
- normalize -------------------------------------------- this is a test character is this string is checking for test ? this string consists of test character strings wow - parse_line ------------------------------------------- (['he', 'ran', '.'], ['él', 'corrió', '.']) - build_vocab ------------------------------------------ l=['<UNK>', '<SOS>', '<EOS>', ' ', 's', 't', 'i', 'r', 'c', 'h', 'e', 'a', 'n', 'g', 'o', 'T', '!', 'f', 'w', 'k', '?', ','] d={'<UNK>': 0, '<SOS>': 1, '<EOS>': 2, ' ': 3, 's': 4, 't': 5, 'i': 6, 'r': 7, 'c': 8, 'h': 9, 'e': 10, 'a': 11, 'n': 12, 'g': 13, 'o': 14, 'T': 15, '!': 16, 'f': 17, 'w': 18, 'k': 19, '?': 20, ',': 21} - words2tensor ----------------------------------------- t=tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2, 0, 0, 0, 0, 0, 0, 0, 0]) seq=23 |
■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)