[PyTorchのチュートリル「VISUALIZING MODELS, DATA, AND TRAINING WITH TENSORBOARD」を実施中にgoogle colabsで下のコードを実行すると・・・
writer.add_embedding(features, metadata=class_labels, label_img=images.unsqueeze(1))
こんな感じでエラーが表示されます。
module 'tensorflow._api.v2.io.gfile' has no attribute 'get_filesystem'
tensorboardをわざわざgoogle colabsで実行しているからしょうがないですね。でも、わざわざ今からローカルで実行するのもちょっと・・・
tensorboardXを利用する
tensorflowとPyTorchを両方同時に使用すると怒るみたいです。これに関してはここに大体書いてありました(tensorflowとPyTorchで名前が被っているのか?)。ということで、google colabsにもとから入っているtensorflowをアンインストールという方法もあるみたいです。
!pip uninstall tensorflow # 没コードです
ただ、この方法だとこのチュートリアルの中盤にあるProjectorが使えなくて積みました(データベースを自動でumapやt-SENにかけてくれる機能なので使えないとだいぶtensorbordの恩恵なくなりますよね)。
いろいろ調べると、PyTorch向けにtensorbordXというライブラリが開発されているようです。そもそもtensorbordはtensorflowのために開発された可視化ツールなので使えなくても当然ですよね
実行するコードは次の2つです。
まず、tensorboardXをpipでインストールします。
!pip install tensorboardX
次にsummary writterをtensorbordXからインポートします。
from tensorboardX import SummaryWriter writer = SummaryWriter(logdir='logs/image')
なぜか、ディレクトリを指定しないと動かなかったので適当な名前で指定しておいてください。
tensorbord起動は今まで通りでOKです。
%load_ext tensorboard %tensorboard --logdir=logs
tensorbordXの具体的な操作方法はこちらで日本語で書いてありました(ありがたや)。
PyTorch互換のtensorbordとしてtensorbordXが開発された経緯が知りたいですね。無償で別の会社が開発しているものを組み合わせて利用できるのは、なんやかんやすごいことだと思います。
実際、チュートリアルでtensorbordを使っている時エラーが出まくってかなり時間を浪費してたんですけど、きっとPyTorch向けの便利なやつがあるんだろうな思ったらやっぱりありました(しかもほとんど同じ操作で利用できる!)。
こういう人の利益につながる(時間の浪費を防ぐ?)仕事がしたいです。
それでは。