fotshuh
@fotshuh (周 佐藤)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

WSL2×Dockerにおけるtorchのインストール条件について

Q&A

Closed

WSL2の環境下でDockerコンテナを作成し、GPUを起動させようとしていますが、
torchがインポートできません。pipでインストールしたのにもかかわらず、このように
なっている理由が分からず、有識者の方ご教示いただくことは可能でしょうか。
パージョン等様々な点確認しましたが解決に至りませんでした。

使用しているimageはkaggleのものを使用しています。
image.png

尚画面のキャプチャを添付致します。

image.png

以下のエラーが右下に表示されており、設定内容見ましたが特に今回のエラーと関連のある
項目を見つけることができませんでした。
image.png

0

1Answer

Comments

  1. @fotshuh

    Questioner

    コメント頂きありがとうございます。
    添付していただいたURLでは少しやり方が分からなかったため、
    jupyterサーバーへの接続方法を調べたところ以下がありましたが、
    こちらも「Jupyter: Specify local or remote Jupyter server for connections」が
    コマンドパレッドの選択肢にありませんでした。
    image.png

    尚、print(sys.path)の出力結果は以下となりました。
    ['/root/src', '/opt/facets/facets_overview/python', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '', '/root/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.8/dist-packages']

    何卒よろしくお願い致します。

  2. Notebook 右上の Select Kernel をクリックして、出たパレットから Existing Jupyter Server… を選択して入力することはできますか?

    スクリーンショット 2024-07-23 23.57.31.png

  3. @fotshuh

    Questioner

    コメント頂きありがとうございます。
    こちら確認致しましたが、普段はPython環境のPython 3.8.10を使用していました。
    大変恐縮ですが、既存のJupyterサーバーのURLとしてどのURLを入力すべきでしょうか。お送りいただいたURLで以下の文章を拝見しましたが、任意のリモートサーバーのIPやport,access-tokenは決まったものがあるということでしたでしょうか。
    何卒よろしくお願い致します。


    次の形式の URL を貼り付けることで、任意のリモート Jupyter サーバーに接続することもできます
    http://:/?token=。
    これを行うには、「Jupyter: 接続用の Jupyter サーバーの指定」コマンドを選択し、リモート Jupyter サーバーの URL を貼り付けます。

  4. 起動したコンテナの中で jupyter notebook --ip 0.0.0.0 --port 8888 --no-browser --allow-root を実行して、表示された URL を入力してください。

    普段はPython環境のPython 3.8.10を使用していました。

    これは WSL2 の Python ですよね? Docker コンテナ内の Python とは関係ない環境なので、最初のスクリーンショットにあるようにコンテナ内で pip install torch しても、 WSL2 の Python には影響しません。

    今の Notebook は WSL2 の Python で起動した Jupyter サーバーに接続しているので torch が使えず、解決策としてコンテナ内のサーバーに接続しようとしています。

  5. @fotshuh

    Questioner

    早速のご返信ありがとうございます。試したところ、torchのインポートできました。ところがGPUが認識されていない状態でした。ターミナルもjupyterサーバーに接続している状態だとコマンドも実行できないのでnvidia-smiで確認もできませんでした。尚、dockerを使用せずwslのみだと、nvidia-smiでGPUが認識されていることは分かりますが、tensorflowをインポートした際にはCould not find cuda drivers on your machine, GPU will not be usedと表示がされています。結局のところGPUが仮想環境で使用できれば良いのですが解決法ご存じでしょうか。五月雨となり申し訳ありませんがよろしくお願いします。

  6. ターミナルもjupyterサーバーに接続している状態だとコマンドも実行できないのでnvidia-smiで確認もできませんでした。

    一度サーバーを止めて確認したらいいのでは。

  7. WSL 2 対応の CUDA ドライバーは以下のページを参考にしてインストールしてください。

  8. @fotshuh

    Questioner

    上記承知しました。ありがとうございました。

Your answer might help someone💌