第7章. PyTorchモデルをデバッグする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
本書ではこれまで多くのモデルを作成してきたが、この章ではそれらをインタプリタし、その下で何が起こっているのかを簡単に見ていく。デバッグのためにPyTorchをGoogleのTensorBoardに接続する方法を決定するモデルのフォーカスを決定するために、クラスアクティベーションマッピングをPyTorchフックと一緒に使う方法を見ていく。変換と学習パイプラインのボトルネックを特定するためにフレームグラフを使用する方法と、遅い変換を高速化する例を示す。最後に、チェックポインティングを使って大規模なモデルを処理する際に、計算量をメモリと交換する方法を紹介する。最初に、データについて簡単に説明しよう。
午前3時。あなたのデータは何をしているのか?
TensorBoardや勾配チェックポインティングのような、1つのGPUで大規模なモデルを使用するためのピカピカ光るものを掘り下げる前に、こう自問してみよう:自分のデータを理解しているか?入力を分類している場合、利用可能なすべてのラベルにわたってバランスの取れたサンプルを持っているだろうか?トレーニングセット、検証セット、テストセットにおいて?
さらに、のラベルは本当に正しいのだろうか? MNISTやCIFAR-10 (Canadian Institute for Advanced Research)のような重要な画像ベースのデータセットには、誤ったラベルが含まれていることが知られている。特に、犬の品種や植物の品種のように、カテゴリーが互いに似ている場合は、自分のものをチェックすべきである。例えば、あるラベルのカテゴリーには小さな画像しかないのに、他のカテゴリーには大きな解像度の例がある、というようなことがわかった場合、データをチェックするだけで、多くの時間を節約できるかもしれない。
データが良い条件付きであることを確認したら、そうだ、TensorBoardに向かい、モデルの可能性のある問題をチェックし始めよう。
テンソルボード
TensorBoardは、ニューラルネットワークの様々な側面を視覚化するために設計されたウェブアプリケーションだ。精度や損失活性化値などの統計情報を簡単にリアルタイムで見ることができる。TensorFlowを念頭において書かれたものではあるが、PyTorchでの作業はTensorFlowでの使用方法とそれほど変わらないほど、不可知論的でかなり単純なAPIを持っている。早速インストールして、モデルについての洞察を得るためにどのように使えるか見てみよう。
注
PyTorchについて読み進めると、FacebookのTensorBoardの代替である Visdomというアプリケーションの呼び出しに出くわすだろう。PyTorch v1.1以前は、ビジュアライゼーションをサポートする方法として、VisdomをPyTorchと一緒に使う方法があったが、TensorBoardと統合するために、tensorboardX のようなサードパーティのライブラリが利用可能だった。Visdomは継続的にメンテナンスされているが、v1.1以降で公式のTensorBoardインテグレーションが含まれていることは、PyTorchの開発者がTensorBoardが事実上のニューラルネットビジュアライザツールであることを認識していることを示唆している。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access