LoginSignup
14

More than 3 years have passed since last update.

deep learning のフレームワークは、最近は TensorFlow か PyTorch を使用することが多いと思います(他にも色々ありますが)。

TensolFlow には TensolBoard という、loss, accracy などの学習の進行やモデルを可視化する便利なツールがついています。
TensorBoard は現在では Google Colaboratory のノートブック内で使用できるようになっており、またフレームワークの垣根を越えて PyTorch からも使用できるようになっています。

そこで PyTorch から簡単に使ってみたいと思います(実は初 PyTorch)。

使用する環境

Google Colaboratory を使用します。

ソースコード

最初のマジックコマンドは TensolFlow 利用時と同様です。

参考: 簡単 3分 TensorBoard in Google Colab

from __future__ import absolute_import, division, print_function, unicode_literals

try:
  # %tensorflow_version only exists in Colab.
  %tensorflow_version 2.x
except Exception:
  pass
# Load the TensorBoard notebook extension
%load_ext tensorboard

PyTorch のドキュメントに例がありますので、こちらを実行してみます。
https://pytorch.org/docs/stable/tensorboard.html

ResNet という画像判別モデルで、MNIST という入門用数字画像のデータセットを学習します。
SummaryWriter を使用して、画像やモデルを出力します。

import torch
import torchvision
from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets, transforms

# Writer will output to ./runs/ directory by default
writer = SummaryWriter()

transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])
trainset = datasets.MNIST('mnist_train', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)
model = torchvision.models.resnet50(False)
# Have ResNet model take in grayscale rather than RGB
model.conv1 = torch.nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3, bias=False)
images, labels = next(iter(trainloader))

grid = torchvision.utils.make_grid(images)
writer.add_image('images', grid, 0)
writer.add_graph(model, images)
writer.close()

TensorBoard の実行です。
SummaryWritter はデフォルトで ./runs/ directory に出力するとありましたので、runs を logdir として指定します。

%tensorboard --logdir=runs

実行結果

ノートブックのセル内に TensolBoard が表示されます。

学習時の Accuracy と loss のグラフ

loss の落ち具合などを確認します(落ちていませんが Expected result とだいたい同じ)。

image.png

ネットワークの構成

ニューラルネットの構成がわかります。個人的にはこれが便利です。

image.png

おわりに

PyTorch でも TensorBoard が使えるのは、かなり便利ではないでしょうか。
Google Colaboratory で PyTorch されている方、ぜひ使ってみてください!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14