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).


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


■参照サイト
【参照URL①】定番のConvolutional Neural Networkをゼロから理解する.

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

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

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 の理解が怪しかったので, 復習した.


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

※上記ソースについて, 下記のようなコメントの読み替えが必要です.
nn.Conv2d(3, 32, 5) … # 220 = {(H)224 + 2 * (P)0 – (KH)5} / (SH)1 + 1
nn.Conv2d(32, 64, 5) … # 106 = {(H)110 + 2 * (P)0 – (KH)5} / (SH)1 + 1
nn.Conv2d(64, 128, 5) … # 49 = {(H)53 + 2 * (P)0 – (KH)5} / (SH)1 + 1

■実行結果(epoch = 10).


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


■参照サイト
【参照URL①】定番のConvolutional Neural Networkをゼロから理解する.
【参照URL②】torch.Tensor
【参照URL③】andreh7/ecal-rechits-pytorch-training

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

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

1. 環境は、Window 10 Home (64bit) 上で行った。

2. Anaconda3 (64bit) – Spyder上で、動作確認を行った。

3. python の バージョンは、python 3.6.5 である。

4. pytorch の バージョンは、pytorch 0.4.1 である。

5. GPU は, NVIDIA社 の GeForce GTX 1050 である。

6. CPU は, Intel社 の Core(TM) i7-7700HQ である。

今回確認した内容は、現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY) の 4.2.2 CNNの構築と学習(P.067 – P.071) である。
前回に引き続き, Fashion-MNIST を 使った, CNN の 画像分類 について, 少し動作確認を行った.
前回の課題として, 書籍上には, 正誤判定の結果に関する, 具体的な情報が未記載だったので, 今回は, 実際に, 画像を出力させるようにプログラムを書き換えて確認することになった.

※プログラムの詳細は、書籍を参考(P.067 – P.071)にして下さい。


■Fashion-MNISTの学習(正誤判定の画像出力版).

■実行結果(epoch = 1).


■実行結果(epoch = 3).


■以上の実行結果から, 以下のことが分かった.
① 例えば, epoch = 1 の 場合, Fashion-MNIST の テスト画像 の (index的に)12番目 について,
“Sandal” と 予想(tensor(5, device=’cuda:0′)) したが, “Sneaker” が 正解(tensor(7, device=’cuda:0′)) との情報が得られた.

② また, 例えば, epoch = 3 の 場合, Fashion-MNIST の テスト画像 の (index的に)25番目 について,
“Shirt” と 予想(tensor(6, device=’cuda:0′)) したが, “Coat” が 正解(tensor(4, device=’cuda:0′)) との情報が得られた.

③ なお, epoch = 1, 3 のいずれも, (index的に)0~8番目 について, 予想 と 正解 が 一致しているとの情報が得られた.


■参照サイト
Adding a dimension to a tensor in PyTorch.
How to turn a list of tensor to tensor?
Fashion-MNIST

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