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)

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

C++の練習を兼ねて, AtCoder Beginner Contest 112 の 問題C(Pyramid), 問題D(Partition) を解いてみた.

■感想.
1. 問題D は, 時間内で, テストケース C030_scrambled を除いて, 通過したが, ロジック修正を, 自力で出来なかったため, コンテスト終了後, 解説を見て, ロジック修正した.
2. 問題C は, 時間内で, 外枠だけコーディングしたが, 問題の意図を理解できなかったので, コンテスト終了後, 再度解き直した.
3. 問題C は, テストケース in04.txt, in06.txt, in20.txt の Wrong Answer を, 解説見ても, 自力で修正できなかったので, 正解者 の コーディングを参照したところ, N個 の ピラミッド情報 で, ピラミッド高度 に 関する 降順 sort が, 必要なことが分かった(※初回取得で, 高度 0 を取得させないようにするため)ので, ロジック修正した.
4. 個人的には, ここ最近, ABCコンテストの難易度が, かなり上昇気味に感じた, 復習がかなり大変となっている模様(汗).


本家のサイトABC 112 解説をご覧下さい.


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

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


■参照サイト
AtCoder Beginner Contest 112

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

C++の練習を兼ねて, AtCoder Beginner Contest 066 の 問題C(pushpush)を解いてみた.

■感想.
1. 数列の要素を, 問題文の操作で並び順を変えると, 膨大な計算量(O(nの2乗)) が必要となるが, 規則性を見つけると, 計算量が O(n) の 3倍程度 まで, 削減できる点が, 面白いと感じた.
2. 解説を読んだところ, 標準ライブラリ std::deque があるとのことで, 大変参考になったと思う.
3. 標準ライブラリ std::deque を使ってみたところ, 実装が, よりコンパクトにまとまって, びっくりした(汗).


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


■C++版プログラム.

■C++版プログラム(std::dequeを使った場合).


■参照サイト
AtCoder Beginner Contest 066

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

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 の 画像分類 について書かれていたので, 少し動作確認を行った.
また, tqdm の使い方も確認できた.

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


■Fashion-MNISTの学習(GPU版).

■実行結果(GPU版).


■Fashion-MNISTの学習(CPU版).

■実行結果(CPU版).


■以上の実行結果から, 以下のことが分かった.
① 処理速度.
実行結果(GPU版): Elapsed Time: 189.46908950805664[sec]
実行結果(CPU版): Elapsed Time: 1290.8199858665466[sec]
-> GPU版 が CPU版 に比べて, 約6.8倍早く処理できたことが分かった.

② tqdm の 使い方.
著書上の tqdm.tqdm(enumerate~(略)~ では, 動作しなかったので, tqdm(enumerate~(略)~ で 確認した.


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