【python】import torchがエラーで失敗した時の対処方法

プログラム

https://pytorch.org/

せっかくpythonを使っているのだから、deep learningを使って何かやってみたくなりました。

そこで思いついたのが文章の自動生成をできないかということです。

ブログを書くのも何かと楽ではないので、何かしらのキーワードを与えたら勝手に文章を作れないかと思いました。wikipediaやサープスから文章をスクレイピングしてきて勝手に学習して文章を提案してくれるようなシステムです。最近のgoogleは賢いので、自動で作成された文章は見切ってきます。

とはいえライティングの何かしらの補助にはなるかと思いました。

早速情報収集をして、rnnを使った文章の自動生成をするサンプルプログラムを発見。

そこでpytorchが使われていたのでインストール。しかしimport torchが失敗して苦戦したので、今後同じように機械学習をおこなおうと考えている人がいましたらぜひ参考にしてください。

import torchがエラーで失敗した時の対処方法

torchのインストールまでの手順

私が試した方法を書いておきます。

この方法はググると他のサイトでもよく見るインストール手順です。

conda install pytorch-cpu torchvision-cpu -c pytorch

ちなみにコマンドはpytorchの公式サイトで生成しています。

見てわかるようにcondaを使ってインストールしました。

結果としてはこれがimport torchでエラーが出る原因だったわけですが・・・。

環境

  • Windows10(64bit)
  • Python 3.6

つまずいたポイント

  • import torchができない
エラー画面

import torchをするとDLL load failed 指定されたモジュールが見つかりませんというエラーが吐かれました。

困ったものだと思い、頭を悩ませていました。

同じような現象にあって困っているという意見は散見されるものの、これといった解答をしているページがありません。

仕方なかったので英語ページでググっていると・・・、ありました!

https://stackoverflow.com/questions/43664444/how-can-l-unistall-pytorch

こちらのページで解答されていました。

解決方法

conda uninstall pytorch

pip uninstall torch

pip uninstall torch (2回おこなう)

pip3 install https://download.pytorch.org/whl/cpu/torch-1.0.1-cp36-cp36m-win_amd64.whl

pip3 install torchvision


計5回コマンドを実行しました。

まずconda経由でインストールしたpytorchをアンインストール。

次にpipもアンインストールを2回おこないます。

そしてpytorchのコマンドジェネレーターでpipのものを生成。

packageをpipにして、あとは自分の環境に合わせます。私の設定は以下の画面のようになりました。

Run this Commandのところで作成されたコードを実行。

ここまでやって、import torchが使えるようになりました。

原因

  • pipではなく、condaを使ってインストールしていた。

結果論ですが、condaではなくpipを使った場合pytorchが使えるようになりました。

正直に思うところではcondaで正解なのでは??と思っています。

Anaconda使ってますから。

condaとpip 混ぜるな危険

上のリンクでもあるようにcondaとpipを混ぜると割と危険なので気をつけましょうと警笛を鳴らしている人もいます。

pipとcondaで衝突が起きるようです。

今回の対応が正しいかどうかは計り知れません。

この辺の知識が不足しているですが、僕のように趣味でちょっとpython触ってるという人はまた入れ直せばいい話かもしれません。

しかしAnacondaで仮想環境のpythonプロジェクトを管理している人であれば、連鎖的にプロジェクトが触れなくなってしまう可能性もあるわけですから、対応は慎重にしたほうがいいと思います。

以上です。

The following two tabs change content below.
sensiki

sensiki

名前:sensiki 職業:サラリーマン。いわゆる理系男子で大学からプログラミングを学び仕事でも活用中。好きな言語はPython。流行に疎いこともあり最近の話題を独自の視点でまとめていこうと思いブログ開始。スクレイピングや統計を用いたエントリを書きたいと思いまながらツールを作成中。

広告