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

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

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

3. Python の バージョンは、3.6.6 である。

4. Chainer の バージョンは、5.1.0 である。

5. ChainerCV の バージョンは、0.11.0 である。

6. onnx-chainer の バージョンは、1.3.0a1 である。

7. MXNet の バージョンは、1.5.0b20181224 である。

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

■Chainer(参照URL③ の チュートリアルより)

■実行結果.

■Chainer -> (*.onnx) -> MXNet(参照URL⑤から抜粋)

■実行結果.


■参照サイト
【参照URL①】Why it is so difficult to install caffe2??? #1811
【参照URL②】【入門】Windows10にChainerをインストールする方法(Anaconda使用)
【参照URL③】Chainer Tutorial Bookへようこそ!
【参照URL④】Getting ONNX models
【参照URL⑤】Tested environment
【参照URL⑥】Installation

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

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

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

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

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

5. Flask の バージョンは、Flask 1.0.2 である。

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

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

今回確認した内容は、現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY) の 7.2 Flaskを用いたWebAPI化 (P.175 – P.182) である。

※1. プログラムの詳細は, 書籍を参考(P.175 – P.182)にして下さい.

※2. Unix環境で無いため, 原書のような Gunicorn は使用せず, 代案となるが,
参照URL① にある HTTPクライアント(Advanced REST client)を使う形で, 動作確認を行った.
原書の確認方法から, かなり逸脱してしまったが, 学習済みモデルに, テスト画像を読み込ませて,
予測した情報をレスポンスさせる形で確認できたので, とりあえず良しとした.

※3. 下記, ソースのコメントにも記載したが, “loadするモデル” に注意が必要である,
具体的には, resnet18 以外のネットワークを使った学習モデルを保存(ここでは, taco_and_burrito_09.pth)した場合,
Missing key(s) in state_dict: に関する RuntimeError が生じる.
これを回避するため, resnet18 のネットワークを改変せず, そのまま taco画像, burrito画像を訓練したモデル
(ここでは, resnet18_19.pth)を保存し, このモデルを loadする形で, 動作確認を行った.

[モデル/load error]

[モデル/再保存]

[モデル/load ok]

※4. 下記, ソースのコメントにも記載したが, 最初, 変数 img の取得が出来なかったので, 参照URL② を参考に, Debug Mode(SET FLASK_ENV=development を指定する形)で, 動作確認を行った.

[KeyError: ‘img’]

[Advanced REST client/setting 1]

[Advanced REST client/setting 2]

■フォルダ構成.

■対象プログラム(原書を一部改変).

■実行結果.
1. 訓練データ(taco)
画像:taco_000.jpg
予測:taco
⇒ 正解

2. 訓練データ(burrito)
画像:burrito_000.jpg
予測:burrito
⇒ 正解

3. テストデータ(taco)
画像:taco_380.jpg
予測:taco
⇒ 正解

4. テストデータ(burrito)
画像:burrito_383.jpg
予測:taco
⇒ 不正解

5. テストデータ(burrito)
画像:burrito_374.jpg
予測:burrito
⇒ 正解


■参照サイト
【参照URL①】Advanced REST client
【参照URL②】Debug Mode.

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

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

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

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

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

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

5. Flask の バージョンは、Flask 1.0.2 である。

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

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

今回確認した内容は、現場で使える! PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY) の 7.2 Flaskを用いたWebAPI化 (P.174 – P.174) である。

※1. プログラムの詳細は, 書籍を参考(P.174 – P.174)にして下さい.
※2. 今回は, PyTorch というよりは, 寧ろ Flask の 動作確認 となったように思う.

■Flaskの動作確認.


■参照サイト
【参照URL①】flask 1.0.2
【参照URL②】Flask 1.0.2
【参照URL③】Env. Variables not set while running Minimal Flask application

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

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

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) の 6.2 ニューラル行列因子分解 (P.160 – P.169) である。

※プログラムの詳細は, 書籍を参考(P.160 – P.169)にして下さい.

■ニューラル行列因子分解の訓練に関する動作確認(書籍から一部抜粋・追記).

■実行結果(epoch 5).

■指定ユーザの映画評価に関する予測についての動作確認(書籍から一部抜粋・追記).

■実行結果.

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


■参照サイト
【参照URL①】MovieLens
【参照URL②】SAVING AND LOADING MODELS

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

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

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) の 6.1 行列因子分解 (P.152 – P.159) である。

※1. プログラムの詳細は, 書籍を参考(P.152 – P.159)にして下さい.
※2. 書籍上は, 本章に関し, 特に, 訓練したモデルの保存については, 書かれてなかったが, epoch 5 でも, 約1974秒かかったので, 訓練したモデルの保存は, 個人的には, 推奨したい.

■行列因子分解の訓練に関する動作確認.

■実行結果(epoch 5).

■指定ユーザの映画評価に関する予測についての動作確認.

■実行結果.

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


■参照サイト
【参照URL①】MovieLens
【参照URL②】SAVING AND LOADING MODELS
【参照URL③】torch.topk

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

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

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) の 6.1 行列因子分解 (P.152 – P.156) である。

※1. プログラムの詳細は, 書籍を参考(P.152 – P.156)にして下さい.
※2. どちらかというと, torch.sum() の 使い方を確認した内容となっている.

■torch.sum()の動作確認.

■実行結果.


■参照サイト
【参照URL①】torch.sum()

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

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

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.148) である。
※1. プログラムの詳細は, 書籍を参考(P.135 – P.148)にして下さい.
※2. 前回の続きで, 翻訳させる部分を確認した.
※3. ハマった箇所として, Decoderクラスで,
ValueError: First argument of _symbolic_pack_padded_sequence is expected to be a tensor, but got an object of type
といった error が出力されたが,
pad_packed_sequence と 書くべきところを, pack_padded_sequence とタイプミスしたことが原因と分かった.
※4. 以下のように, 実行完了までに, 22050秒程度かかったので, 実行される場合は, 就寝直前などが良いと思われる.

■機械翻訳の動作確認(書籍から一部抜粋・加筆).

■実行結果(一部抜粋).

■実行結果(epoch 30).


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

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)