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

C++の練習を兼ねて, AtCoder Beginner Contest 039 の 問題C(ピアニスト高橋君) ~ 問題D (画像処理高橋君) を解いてみた.

■感想.
1. 問題D は, impossible の判定に, 画像復元 → 画像収縮 を行った上で, 入力情報と比較する必要があることに気付いたため, 解答に辿り着くことが出来たように思う.
考え方のベースが, AtCoder Beginner Contest 075 (B – Minesweeper) に近いように思った.
但し, 結局ゴリゴリ書く羽目になって, 非常にきつかった.
2. 解説と, ほぼ同じ方針だったので, 及第点は, 取れたように思う.


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


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

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

■参照サイト
AtCoder Beginner Contest 039

Docker の動作確認をしてみた(2)

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

※1. 基本的に, 参照URL① の Tutorial に 従って 確認した(※ほぼ, Tutorial通りのため, 手順は割愛している).
※2. [Dockerfile]ファイル には, FROM python:3.7-slim を 指定した.
※3. ブラウザ確認時の IPアドレス が, PC(※ここでは, 192.168.56.1)でなくて,
docker instance の IPアドレス(※ここでは, 192.168.99.100) となることに注意が必要とのこと.

■結果.

■参照サイト
【参照URL①】Get Started, Part 2: Containers.
【参照URL②】Docker – Failed to connect to localhost port 4000: Connection refused.

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

C++の練習を兼ねて, AtCoder Beginner Contest 114 の 問題C(755) ~ 問題D (756) を解いてみた.

■感想.
1. 問題C, 問題D とも, 解答に至るまでの条件が複雑だったため, 結局, ゴリゴリ書く羽目になって, 非常にきつかった.
2. 但し, 解説と, ほぼ同じ方針だったので, 及第点は, 取れたように思う.


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


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

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

■参照サイト
AtCoder Beginner Contest 114

Docker の動作確認をしてみた(1)

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

※1. install時の注意点として, [Docker Quickstart Terminal]ショートカットのリンク先情報(下記, 参照)に, Git install が, 前提だったので, 再度, Git installする形で, 対応した.
※2. install手順は, 他サイトに, 詳細があるので, 割愛した.

■結果
1. Docker Quickstart Terminal の 起動.

2. Docker の 動作確認.

■参照サイト
【参照URL①】Install Docker on Windows 10 Home.
【参照URL②】Docker Toolbox overview.
【参照URL③】Docker quick start treminal fails to start on Windows 10 with VBoxManage.exe error #473.
【参照URL④】Cannot boot Windows guest in VirtualBox without kernel module error.
【参照URL⑤】How do I figure out the display name of a Windows service from its “short” name?.
【参照URL⑥】“Docker Quick Start Terminal” shortcut, an error occurs. #335.

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

C++の練習を兼ねて, AtCoder Beginner Contest 045 の 問題C(たくさんの数式 / Many Formulas) ~ 問題D (すぬけ君の塗り絵 / Snuke’s Coloring) を解いてみた.

■感想.
1. とりあえず, 解説見ずに解けたので良かったと思う.
2. 問題C は, 方針を決めることが出来たが, 結構ゴリゴリ書く羽目になってしまったように思う.
3. 問題D は, 計算量を減らすのに, 黒いマスに関係する3行3列の連続するマス目に限定させる方法に, 辿り着いたので解答出来たと思う.
4. 解説と, ほぼ同じ方針だったので, 及第点は, 取れたと思う.


本家のサイトABC 045 / ARC 061 解説をご覧下さい.


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

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

■参照サイト
AtCoder Beginner Contest 045

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

C++の練習を兼ねて, AtCoder Beginner Contest 043 の 問題D(アンバランス / Unbalanced) を解いてみた.

■感想.
1. とりあえず, 解説見ずに解けたので良かったと思う.
2. 問題D は, 過半数の解釈に時間かかったように思う, ソース上のコメント通りであるが,
2パターンに集約できることに気付いたので, 解答に到達できた.
※なお, WA版は, パターン① しか考慮出来てなかったことが原因と思われる.


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


■C++版プログラム(問題D/WA版, 1_08, 1_09, 1_10, 2_18, 2_19, 2_20 で, Wrong Answer).

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

■参照サイト
AtCoder Beginner Contest 043

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)

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

C++の練習を兼ねて, AtCoder Beginner Contest 047 の 問題B(すぬけ君の塗り絵 2 イージー / Snuke’s Coloring 2 (ABC Edit)) ~ 問題D(高橋君と見えざる手 / An Invisible Hand) を解いてみた.

■感想.
1. とりあえず, 解説見ずに解けたので良かったと思う.
2. 問題B は, 最初, 方針が全く見えなかったが, 数列 a の値を確認する度に, 黒く塗りつぶす x, y座標の最小値, 最大値が変化することに気付いたので, 解答に到達できた(※個人的には, 非常に面白い問題と感じた).
2. 問題D は, 数列A の 各要素の後方について, 最大値の抽出が必要があることに気付けた(※下記, ソースでは, 数列B として抽出している)ため, 解答に到達できた.


本家のサイトARC #063 / ABC #047 解説をご覧下さい.


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

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

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

■参照サイト
AtCoder Beginner Contest 047

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

C++の練習を兼ねて, AtCoder Beginner Contest 048 の 問題C(Boxes and Candies), 問題D(An Ordinary Game) を解いてみた.

■感想.
1. とりあえず, 解説見ずに解けたので良かったと思う.
2. 問題D は, 方針が見えなかったが, 文字列の両端に着目してみたところ, 規則性を抽出できたので, 解答に辿り着いた.
※解説みたら, だいたい同じ方針だったので, 着眼点については, 及第点に到達できたと思う.


本家のサイトABC 048 / ARC 064 解説をご覧下さい.


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

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

■参照サイト
AtCoder Beginner Contest 048