PyTorch 1.5 レシピ : 可視化, TensorBoard : PyTorch でどのように TensorBoard を使用するか (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 05/14/2020 (1.5.0)
* 本ページは、PyTorch 1.5 Recipes の以下のページを翻訳した上で適宜、補足説明したものです:
- Visualization, TensorBoard : How to use TensorBoard with PyTorch
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
- Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション |
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/ |
Facebook: https://www.facebook.com/ClassCatJP/ |
可視化, TensorBoard : PyTorch でどのように TensorBoard を使用するか
TensorBoard は機械学習実験のための可視化ツールキットです。TensorBoard は損失と精度のようなメトリクスを追跡して可視化することを可能にし、モデルグラフを可視化し、ヒストグラムを見て、画像を表示する等々を可能にします。このチュートリアルでは TensorBoard インストール、PyTorch の基本的な利用方法、そして TensorBoard UI でログ記録したデータをどのように可視化するかをカバーします。
インストール
モデルとメトリクスを TensorBoard ログ・ディレクトリにログ記録するため PyTorch がインストールされるべきです。次のコマンドは Anaconda (推奨) を通して PyTorch 1.4+ をインストールします :
$ conda install pytorch torchvision -c pytorch
or pip
$ pip install torch torchvision
PyTorch で TensorBoard を使用する
今は PyTorch で TensorBoard を使用してみましょう!何かをログ記録する前に、SummaryWriter インスタンスを作成する必要があります。
import torch from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter()
Writer はデフォルトでは ./runs/ ディレクトリに出力します。
スカラーをログ記録する
機械学習では、損失のような主要メトリクスとそれらが訓練の間にどのように変化するかを理解することは重要です。スカラーは各訓練ステップの損失値、あるいは各エポック後の精度をセーブする助けとなります。
スカラー値をログ記録するには、add_scalar(tag, scalar_value, global_step=None, walltime=None) を使用します。例えば、単純な線形回帰訓練を作成して、add_scalar を使用して損失値をログ記録しましょう。
x = torch.arange(-5, 5, 0.1).view(-1, 1) y = -5 * x + 0.1 * torch.randn(x.size()) model = torch.nn.Linear(1, 1) criterion = torch.nn.MSELoss() optimizer = torch.optim.SGD(model.parameters(), lr = 0.1) def train_model(iter): for epoch in range(iter): y1 = model(x) loss = criterion(y1, y) writer.add_scalar("Loss/train", loss, epoch) optimizer.zero_grad() loss.backward() optimizer.step() train_model(10) writer.flush()
総ての保留イベントがディスクに書かれたことを確実にするために flush() メソッドを呼び出します。
ログ記録可能なより多くの TensorBoard 可視化タイプを見つけるには torch.utils.tensorboard チュートリアル を見てください。
もはや summary writer を必要としない場合、close() メソッドを呼び出します。
writer.close()
TensorBoard を実行する
ログ記録したデータを可視化するためコマンドラインを通して TensorBoard をインストールします。
$ pip install tensorboard
今、上で使用したルートログ・ディレクトリを指定して、TensorBoard を開始します。引数 logdir は TensorBoard がそれが表示できるイベントを見つけるために見るディレクトリを指します。TensorBoard は .*tfevents.* ファイルを探して、logdir をルートとするディレクトリ構造を再帰的に辿ります。
$ tensorboard --logdir=runs
それが提供する URL か http://localhost:6006/ に進んでください。
このダッシュボードは総てのエポックと共に損失と精度がどのように変化するかを示します。貴方はまた訓練スピード、学習率、そして他のスカラー値を追跡するためにもそれを利用できます。貴方のモデルを改良するために異なる訓練実行に渡りこれらのメトリクスを比較することは役立ちます。
TensorBoard ダッシュボードを共有する
TensorBoard.dev は貴方の ML 実験結果をアップロードさせて誰とでも共有させます。貴方の TensorBoard ダッシュボードをホストし、追跡し、そして共有するために TensorBoard.dev を利用してください。
アップローダを利用するには TensorBoard の最新バージョンをインストールします。
$ pip install tensorboard --upgrade
貴方の TensorBoard をアップロードして共有するために単純なコマンドを使用します。
$ tensorboard dev upload --logdir runs \ --name "My latest experiment" \ # optional --description "Simple comparison of several hyperparameters" # optional
ヘルプのためには、”$ tensorboard dev –help” を実行します。
Note: アップロードされた TensorBoard は public で総ての人に可視です。センシティブなデータをアップロードしないでください。
端末で提供された URL で TensorBoard Live を見てください。E.g. https://tensorboard.dev/experiment/AdYd1TgeTlaLWXx6I8JUbA
Note: TensorBoard.dev は現在はスカラー・ダッシュボードだけをサポートします。
以上