はじめに
PytorchでTensorboardを使おうと思いインストールしてコードを書いて実行したらエラーに出会ったので、それの対処法を書きます。
Tensorboardのインストール
anacondaを使っているので、以下のコマンドでインストールしました。
conda install tensorboard
コード
SummaryWriterでグラフを書くためにimportします。
from torch.utils.tensorboard import SummaryWriter
エラー
下記のようなImportErrorが出ました。
ImportError: cannot import name 'SummaryWriter' from 'torch.utils.tensorboard'
During handling of the above exception, another exception occurred:
ImportError: TensorBoard logging requires TensorBoard with Python summary writer installed. This should be available in 1.14 or above.
対処法
とりあえず、アンストして再インストール
うまくインストールができなかったのかなと思い、アンストして再びインストールしました。
同じエラーが出ました。
ここで血迷ってpipでインストールもしたりしました。(pipとcondaの混同はあまりよくない)
結局、同じエラーが出ました。
Pytorchのバージョン確認
Pytorchではv1.2.0から正式にTensorboardが使えるので、とりあえずPytorchのバージョンを確認しました。
import torch
print(torch.__version__)
1.5.1でした。Pytorchの問題ではなさそうです。
Tensorboardのバージョン確認
エラー文には,Tensorboardのバージョンは1.14以上と書いてあるので、確認しましょう。
conda list
2.2.1でした。Tensorboardの問題でもなさそうです。
ファイル名の変更
PytorchとTensorboardのバージョンを確認して大丈夫だったので、もうすることがありません。
何が原因でエラーを吐いているのかわかりません。
ファイル名をみてみると、tensorboard.pyと書いてありました。
まさか、ファイル名とmoduleが衝突してimportできないことが原因なのでは?と思いました。
ファイル名をtb.pyに変更しました。
そして、実行してみるとエラーが出ませんでした!!!!
まとめ
PytorchでTensorboardを使おうと思いインストールしましたが、moduleとファイル名を同じにしてImportErrorが出ました。ファイル名とmoduleは別々にしましょう。
また、condaとpipの混同は避けましょう。