【PyTorch】torch.utils.bottleneck実行時のUnicodeDecodeErrorの対処法

PyTorchではボトルネックを解析するための機能が用意されていて,↓こんな感じで簡単に使用することができます。

実装してみたスクリプトがやたら遅かったのでこれを使ってみようと思ったところ,PythonによくあるUnicodeDecodeErrorに遭遇したので,その対処法を残しておきます。

※原因そのものは,PyTorchやtorch.utils.bottleneckとは直接的には関係なく,他の状況でも発生するものです。

実行環境

  • Windows環境(コマンドプロンプト上で実行)
  • PyTorch==0.4.1

エラーの内容

実際に発生したエラーはこんな内容です。

Pythonを使っているとUnicodeDecodeErrorはよく遭遇する割には,解決方法がパッとはなかなか分からない曲者だと思います。

エラーの原因と対処方法

エラーの原因

エラーの原因は以下の通りです。

  • Windows環境のコマンドプロンプトで実行していた
  • コマンドプロンプトの文字コードがUTF-8ではなかった

コマンドプロンプトではchcpコマンドで確認すれば分かるように,文字コードがSHIFT-JISになっています。

932はSHIFT-JISを表していますので,これをUTF-8に変更してやれば解決です。

対処方法

以下のようにコマンドプロンプトの文字コードをUTF-8に変更します。

これで再度ボトルネック解析のコマンドを実行すれば,エラーは解消されているはずです。

スポンサーリンク