PyTorch の動作確認をしてみた(19)

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.145) である。
※1. プログラムの詳細は, 書籍を参考(P.135 – P.145)にして下さい.
※2. 書籍上で紹介されていたスペイン語のパターン以外の言語も, とりあえず動かしてみた.

スペイン語: spa.txt
スウェーデン語: swe.txt
ドイツ語: deu.txt
フランス語: fra.txt
ロシア語: rus.txt

■Encoder-Decoderモデルの動作確認(書籍から一部抜粋・加筆).

■実行結果.
書籍上で指摘されているが, とりあえず, よく分からない文章が生成された.


■参照サイト
【参照URL①】Tab-delimited Bilingual Sentence Pairs

■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)

PyTorch の動作確認をしてみた(18)

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)の動作確認(書籍から一部抜粋・加筆).

■実行結果.


■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)

PyTorch の動作確認をしてみた(17)

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.4 RNNによる文章生成 (P.126 – P.134) である。

※1. プログラムの詳細は, 書籍を参考(P.126 – P.134)にして下さい.
※2. 動作確認時に躓いた箇所も, コメントした.


■関数(str2ints, ints2str)の動作確認(書籍から一部抜粋・加筆).

■実行結果.


■RNNによる文章生成(書籍から一部抜粋・加筆).

■実行結果(epoch = 50).
文章と言われてみれば, 見えなくも無さそうだが, 精度は, まだまだ低そうに見える.

■ハマった現象 & 解決策.


■参照サイト
【参照URL①】karpathy/char-rnn
【参照URL②】tinyshakespeare.txt の 内容

■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)

PyTorch の動作確認をしてみた(16)

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.3 RNNと文章のクラス分類 (P.113 – P.121) である。

※1. プログラムの詳細は, 書籍を参考(P.113 – P.121)にして下さい.
※2. RNN の挙動について, 前回の課題として残していたものがあったので, 再度, 復習した.
※3. 参照URL① を 元に, positive, negative に関する予測, 正解に関する情報を出力させるなどの, 動作確認を行った.
-> DataLoaderの使い方で, 落とし穴があったので, 実行結果でも, コメントした.


■RNNと文章のクラス分類に関する動作確認(書籍から一部抜粋・加筆).

■実行結果.
1. [aclImdb_small]フォルダで確認(※データ数を少なくして検証)した場合(epoch = 5).
※以下のファイルで構成されているものとする.
imdb.vocab
aclImdb_small\train\neg\1_1.txt
aclImdb_small\train\neg\0_3.txt
aclImdb_small\train\pos\0_9.txt
aclImdb_small\train\pos\1_7.txt
aclImdb_small\train\unsup\0_0.txt
aclImdb_small\train\unsup\1_0.txt
aclImdb_small\test\neg\1_3.txt
aclImdb_small\test\neg\0_2.txt
aclImdb_small\test\pos\1_10.txt
aclImdb_small\test\pos\0_10.txt

2. [aclImdb]フォルダで確認した場合(epoch = 5).
※[aclImdb/test/neg]フォルダ, [aclImdb/test/pos]フォルダ に, それぞれ, 12500枚ずつ の テキストファイルが保管されている.

■実行結果.


■参照サイト
【参照URL①】DataLoader Filenames in each Batch
【参照URL②】zip-like function that pads to longest length?

■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)

PyTorch の動作確認をしてみた(15)

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.3 RNNと文章のクラス分類 (P.113 – P.121) である。

※1. プログラムの詳細は, 書籍を参考(P.113 – P.121)にして下さい.
※2. とりあえず出力されるところまで, 動作確認を行った.


■RNNと文章のクラス分類に関する動作確認(書籍から一部抜粋・加筆).

■実行結果.


■参照サイト
【参照URL①】WindowsでCP932(Shift-JIS)エンコード以外のファイルを開くのに苦労した話
【参照URL②】BrokenPipeError: [Errno 32] Broken pipe #4418

■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)

C++ の動作確認をしてみた(32)

C++の練習を兼ねて, AtCoder Beginner Contest 053 の 問題C(X: Yet Another Die Game), 問題D(Card Eater) を解いてみた.

■感想.
1. とりあえず, 解説見ずに解けたので良かったと思う.
※解説みたら, 同じ方針だったので, 着眼点については, 及第点に到達できたと思う.


本家のサイトABC053 /ARC068 解説をご覧下さい.


■C++版プログラム(問題C/AC版).

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 053

PyTorch の動作確認をしてみた(14)

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.1 RNNとは ~ (P.108 – P.114) である。

※1. プログラムの詳細は, 書籍を参考(P.108 – P.114)にして下さい.
※2. 今回は, PyTorch というよりは, 寧ろ Pythonの正規表現 の確認となったように思う.
※3. 併せて, 書籍上の関数(text2ids, list2tensor)について, 簡単な動作確認を行った.


■text2ids, list2tensorの動作確認(書籍の関数).

■実行結果.


■正規表現の動作確認(書籍から一部抜粋・加筆).

■実行結果.




■参照サイト
【参照URL①】6.2. re — 正規表現操作

■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)

PyTorch の動作確認をしてみた(13)

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) の 4.5 DCGANによる画像生成(P.093 – P.104) である。

※1. プログラムの詳細は, 書籍を参考(P.093 – P.104)にして下さい.
※2. 書籍上は, 訓練した生成モデル, 識別モデルの保存については, 書かれていたが, ロードについては記載されてなかったので, 動作確認時に, 参照サイト① ~ 参照サイト② を参考に, 動作確認した.
※3. 参照サイト② (“A common PyTorch convention is to save models using either a .pt or .pth file extension.”) にあるように, 訓練した生成モデル, 識別モデルの拡張子を, “.pth” で保存したため, 書籍上の “.prm” と異なっている.
※4. 生成モデルをロードした際の動作確認は, 訓練済みの生成モデルをロードする形で行ったので, 非常に短時間(1秒未満)で, 画像の生成を確認できた.


■生成モデル, 識別モデルの確認(書籍から一部抜粋・加筆).

■実行結果.


■生成モデル, 識別モデルの訓練~画像生成(書籍から一部抜粋・加筆).

■実行結果.


■訓練済み生成モデルのロード~画像生成(書籍から一部抜粋・加筆).

■実行結果.


■以上の実行結果から, 以下のことが分かった.

3. 画像生成失敗時(epoch 0)

4-1. 画像生成成功時(epoch 0)

4-2. 画像生成成功時(epoch 50)

4-3. 画像生成成功時(epoch 100)

5. 訓練済み生成モデルによる画像生成


■参照サイト
【参照URL①】Saving torch models
【参照URL②】SAVING AND LOADING MODELS

■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)

C++ の動作確認をしてみた(31)

C++の練習を兼ねて, AtCoder Beginner Contest 056 の 問題C(Go Home), 問題D(No Need) を解いてみた.

■感想.
1. 問題C, 問題D ともに, 時間はかかったもの(※特に, 問題D)の, 解説見ずに解けたので, 良かったと思う.
2. 当方の解答方針は, 入力値N(カードの枚数), K(よい集合の判定条件) を, 再帰的に, どんどん縮小していく方針を採用した.


本家のサイトARC070 / ABC056 解説をご覧下さい.


■C++版プログラム(問題C/AC版).

■C++版プログラム(問題D/WA版, 2_042.txt で, Wrong Answer).

■C++版プログラム(問題D/AC版).

■デバッグ出力例(問題D/AC版).
[入力例] について, 最初から3つ目までを, 本家のサイトから, 抜粋している.

■参照サイト
AtCoder Beginner Contest 056

PyTorch の動作確認をしてみた(12)

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) の 4.4 CNN回帰モデルによる画像の高解像化(P.088 – P.092) である。

※1. プログラムの詳細は, 書籍を参考(P.088 – P.092)にして下さい.
※2. 書籍上は, 訓練したCNNモデルの保存/ロードについて, 記載されてなかったので, 動作確認時に, 参照サイト① ~ 参照サイト③ を参考に, プログラムを追記した.
-> なお, 訓練時に, epoch = 10 で, 800秒以上かかることが分かったため, 訓練したCNNモデルを, 保存したいという動機があったためである.
※3. 高解像度化の動作確認は, 訓練したCNNモデルをロードする形で行ったので, 非常に短時間(1秒未満)で, 画像ファイルの出力を確認できた.


■CNNの訓練(書籍CNNの訓練を抜粋・加筆).

■実行結果.


■CNNモデルによる高解像度化の動作確認(書籍上の高解像度化の内容を抜粋・加筆).

■実行結果.


■以上の実行結果から, 以下のことが分かった.


■参照サイト
【参照URL①】Saving and loading a model in Pytorch?
【参照URL②】pytorch/examples
【参照URL③】Best way to save a trained model in PyTorch?

■参考書籍
現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)