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)

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)

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)

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

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.083 – P.088) である。

※1. プログラムの詳細は、書籍を参考(P.083 – P.088)にして下さい。
※2. ConvTranspose2d が出てきたので, 改めて本家のサイトを確認し, プログラム上に, 計算式等をメモした.


■CNN回帰モデル(書籍CNNモデルを抜粋・加筆).

■実行結果(input size = torch.Size([1, 3, 128, 128]) の 場合).

■実行結果(input size = torch.Size([1, 3, 32, 32]) の 場合).


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



■参照サイト
【参照URL①】torch.nn.Conv2d
【参照URL②】torch.nn.BatchNorm2d
【参照URL③】torch.nn.ConvTranspose2d

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

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

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.3.1 転移学習(P.072 – P.082) である。

※1. プログラムの詳細は、書籍を参考(P.072 – P.082)にして下さい。
※2. 転移学習の挙動について, もう少し深めたかったので, 再度, 復習した.
※3. 画像を出力させるなどして, 再度動作確認してみた.


■転移学習(自作CNNモデル).

■実行結果(自作CNNモデル, batch size = 64, epoch = 10).


■転移学習(書籍CNNモデル).

■実行結果(書籍CNNモデル, batch size = 32, epoch = 10).


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


■参照サイト
【参照URL①】定番のConvolutional Neural Networkをゼロから理解する.
【参照URL②】Adding a dimension to a tensor in PyTorch.
【参照URL③】How to turn a list of tensor to tensor?
【参照URL④】andreh7/ecal-rechits-pytorch-training
【参照URL⑤】TRANSFER LEARNING TUTORIAL

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

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

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.3.1 転移学習(P.072 – P.082) である。

※1. プログラムの詳細は、書籍を参考(P.072 – P.082)にして下さい。
※2. CNN の理解をもう少し深めたかったので, 再度, 復習した.
※3. 前回と, 異なるCNNモデルを適当に構築して, 再度動作確認してみた.


■転移学習(書籍の一部を抜粋・改変).

※上記ソースについて, 下記のようなコメントの読み替えが必要です.
nn.Conv2d(3, 32, 4, stride=2) … # 111 = {(H)224 + 2 * (P)0 – (KH)4} / (SH)2 + 1
nn.Conv2d(32, 96, 3, stride=2) … # 18 = {(H)37 + 2 * (P)0 – (KH)3} / (SH)2 + 1
nn.Conv2d(96, 192, 4) … # 6 = {(H)9 + 2 * (P)0 – (KH)4} / (SH)1 + 1

■実行結果(epoch = 10).