PyTorchでTensorBoardのエラーが出た
はじめに
前までは、PyTorchでTensorBoardを使う時は、tensorboardX というものを使っていた。 最近では、PyTorchでもtorch.utils.tensorboardを使うことで、tensorboardを使えるようになっている。
このtorch.utils.tensorboard
を使おうとした時に、エラーが出てつまったので、その解決方法を残しておく。
エラー
下のようなコードを実行してエラーが出た。
from torch.utils.tensorboard import SummaryWriter
出たエラーは下のようなものだった。
raise ImportError('TensorBoard logging requires TensorBoard with Python summary writer installed. ' ImportError: TensorBoard logging requires TensorBoard with Python summary writer installed. This should be available in 1.14 or above.
解決法
何通りか解決しそうな方法を試したので、書いておく。
1. TensorBoardのバージョン変更
エラー内容からTensorBoardのバージョンが低いことによるエラーと思われる。
TensorBoardのバージョンを確認して、もし1.14
より低かったら、
1.14
以降のバージョンのTensorBoardをインストールする。
pipでインストールしてるなら、下のようなコマンドで、出てくる。
pip list | grep tensorboard
anacondaとかなら、conda list
を使って、表示されるものから探してみれば見れる。
実際に確認してみたが、きちんと、1.14
以降であったので、これが原因ではなかった。
2. PyTorchのバージョン変更
PyTorchのTensorBoardはどのバージョンでも動くわけではない。 PyTorchでtensorboardが実験的(experimental)に使えるようになったのがv1.1.0で、v1.2.0からはexperimentalが外れて正式に使えるようになった。 なので、PyTorchのバージョンを確認して、もしバージョンがv1.2.0より下ならPyTorchのバージョンを上げる必要がある。 PyTorchのバージョンを確認方法は、下で見ることが出来る。
import torch print(torch.__version__)
実際に確認してみたが、これも、1.2.0
以降のバージョンがインストールされていたので、原因ではなかった。
3. 実行ファイル名をtensorboard.pyというファイル名にする
実行ファイル名がtensorboard.py
であったら変更する。
バージョンも全部そろってるはずなのにエラー出るので、ソースコード見に行った。
try: from tensorboard.summary.writer.record_writer import RecordWriter # noqa F401 except ImportError: raise ImportError('TensorBoard logging requires TensorBoard with Python summary writer installed. ' 'This should be available in 1.14 or above.')
ここで、テスト用で名前をtensorboard.py
という名前にしていまっていることに気が付いた。
tensorboard
という名前が一致しているので、モジュールの読み込みが失敗していた。
ファイル名変えたらエラーが出なくなった。
まとめ
試しに動かしてみたいと、試し用で同じ名前にしてしまったことで、 結構な時間をとられてしまった。 モジュールと同じ名前を付けないように気を付けたい。