メインコンテンツへスキップ
見出し画像

地獄の環境構築-修復・エラー対応編

    1.概要

     個人的にプログラミングで一番面白くなく辛いのは環境構築(プログラミングできる環境を設定すること)であり、無駄なことをしなくていいように記事を書いております。
     ただし(仮想環境を作っても)ふとした操作で環境が崩れることがあるため、自分用の備忘録としてエラー対応を記載します。

    2.Numpyエラー: DLL load failed

     Numpyをimportしても"DLL load"のエラーが消えませんでした。

    [IN]
    import numpy
    
    [OUT]
    anaconda warnings.warn("loaded more than 1 DLL from .libs:"

     記事通り再インストールすればよいのですが、私の環境ではよくわかりませんが複数のNumpyが入っていたっぽく下記の通り2回(以上)アンインストール※したら成功しました。
    ※2回目に何故か1回目と違うVerのアンインストールがログとして出ました

    [Terminal]
    pip uninstall numpy
    pip uninstall numpy
    pip install numpy

    3.複数CUDA環境を追加時のエラー

     特定のAIを作るためにWindows環境下に複数のCUDAを入れたら(base)の環境が全滅しました。復活させるまでの道のりを記載します。
     前提としてもともと使えていた環境が壊れたため、当たり前のことも前提として記載していきます。

    3-1.Anacondaのパス確認:ユーザー環境変数

     Anacondaの環境変数が正しく設定されていることを確認します。もし消えている・無い場合は手動で追加します。

    [環境変数名の編集]
    C:\Users\<User名>\Anaconda3
    C:\Users\<User名>\Anaconda3\Library\mingw-w64\bin
    C:\Users\<User名>\Anaconda3\Library\usr\bin
    C:\Users\<User名>\Anaconda3\Library\bin
    C:\Users\<User名>\Anaconda3\Scripts
    画像

    3-2.CUDAのVersion確認

     CUDAを複数環境入れた時に自分が今使用したいCUDA/cuDNNが選択できてるか確認します。複数環境での設定は下記をベースにしています。

    3-2-1.CUDAのVersion切り替え

     下記設定ではCUDA 10.0, 11.1, 11.6を選択できCUDA 11.6を選択しています。なおCUDA_PATHの設定変更(CUDA Ver.変更)後は再起動が必要です。

    画像

     なおCUDAをインストールすると環境変数(システム環境変数のPATH)が自動で書き換わるため「きんたろうのIT日記ブログ」の設定をしている方は下記の通りに修正します。

    [変更前]
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\libnvvp
    
    [変更後]
    %CUDA_PATH%\bin
    %CUDA_PATH%\libnvvp
    画像


    3-2-2.CUDA切り替えの確認

     コマンドプロンプト(PowerShellはsetが使えない)で"set"と打つと環境変数が確認できます。
     "CUDA_PATH"と"Path=CのCUDA\v "のVersionが使用したいCUDAであることを確認します。(上下ともにVer11.6で指定されている。)

    画像

     正しく設定できればnvccコマンドも使用できるため下記でVer確認します。

    [Terminal]
    nvcc -V
    画像

    3-3.Pytorchのインポートエラー

     上記だけでうまくいけばよいのですが"import torch"でPytorchライブラリを読み込むだけでも下記のようなエラーが発生しました。

    [IN]
    import torch
    
    [OUT]
    AttributeError: module 'dill._dill' has no attribute
    NameError: name '_C' is not defined

    「Error during import torch, NameError: name '_C' is not defined」

     シンプルに再インストールで問題解決できれば良いのですが、私の場合は下記で実行しました。

    【2022年12月追記】
     Anacondaのアップデート?か何かでTorchが動かなくなりましたが、本章と同じ対応で修復できました。

    画像

    3-3-1.torch関係をすべてアンインストール

     Pytorchに関係するライブラリをすべて削除します。なお削除時はVS CODEのようなIDEは閉じてから実行してください。
     念のために2回ずつアンインストールして完全に削除されたことも確認しました(※通常は1回でよいですが修復できない場合は2回試す)。

    [Terminal]
    pip uninstall torch
    pip uninstall torch
    pip uninstall torchvision
    pip uninstall torchvision
    pip uninstall torchaudio
    pip uninstall torchaudio

     2023年4月追記:他にもPytorch関係で入れてるならそれも削除しておく

    pip uninstall pytorch-lightning
    pip uninstall lightning
    pip uninstall lightning-utilities 

     下記は一括処理用

    pip uninstall torch torchvision torchaudio pytorch-lightnin lightnin lightning-utilities 

    3-3-2.Pytorchの再インストール

     PytorchをインストールしますがCUDAにあったVersionを選定する必要があります。(上ではCUDA 11.6ですが後で変更するので)CUDA 11.1用のPytorchを選定しました。コマンドは下記から選択します。

    画像

     選定したコマンドを実行してエラーがでなければ使用できるはずです。

    [Terminal]
    pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html

    4.Jupyter/Editer

    4-1."Code Editor out of Sync.

     この記事通りで治った。

    4-2.VSCODEの予期しないエラー(Linux)

     Raspberry Piに入れたVS CODEで「予期しないエラーのため、エディターを開くことができませんでした」と出て、Jupyterが使用できなくなった。
     結果的にはパッケージリストの更新とパッケージ更新で改善された。

    [Terminal]
    sudo apt update
    sudo apt upgrade
    画像

    5.Keras

    5-1.KerasのAPI変更(version違い)によるエラー

     環境構築というよりはVersion違いによるもの。



    更新履歴

    • 2022年9月4日:TecoGANのためのCUDA追加によるbase環境破損->PytorchとAnaconda環境の修復

    • 2022年12月18日:Anacondaのアップデート?でPytorchの環境が破損したが、同様の処理で修復できたことを追記

     
     

    KIYO

     
     
    普段は製造業で企画/開発/設計しております。記事はプログラミング・機械学習、IoT関係の記事をメインで作成し、なるべく1つの記事で知りたいことを網羅していきます。内容は学術的より実装・アウトプット(ほしくなるもの)を重視して作成しています。 面白そうな仕事があればやりたいです!

    あなたへのおすすめ