見出し画像

DeepLabCutを動かすまで

GPU初心者です。DeepLabCutで微生物画像を解析してみようと思いました。DeepLabCutが動くまで結構苦労したので、役に立つかわかりませんが記録を置いておきます。

最終的にうまくいった環境

  • RTX 3090

  • WSL2 Ubuntu 20.04 (Windows 11)

  • Anaconda

  • CUDA 11.1.1

  • cuDNN 8.0.5

  • Python 3.7.13

  • TensorFlow 2.5.0

  • wxPython 4.0.7

wxPythonは pip install wxpythonとするとなぜか途中でインストールが止まるので、URL指定でこちらからインストールしました。wxPython 4.0以下じゃないとダメらしいですが、Python 3.8で環境を作るとwxPython 4.1しか対応していないっぽかったので、Pythonのバージョンを3.7にしました。公式ではPython 3.8で環境を作っているみたいだけど、そのへんうまくいく方法があるんだろうか。
公式からyamlをダウンロードしてそのまま環境を作ろうともしてみましたが、なぜかうまくいかず(yamlがうまく読み込まれなかったようだった)。

DeepLabCutはTensorFlow 2.xに対応している(2022年5月現在)

一瞬 Nath et al. (2019) Nature Protocolsを見てtf1系を入れようとしたけど、pip install deeplabcut をしたらtf2系が入ったのでtf2系に対応していることに気づきました。

DeepLabCutの操作の参考にしたページ

SakuLabさんのnoteを見ながらやっていました(こちらはWindows)。

最初に構築した環境

CUDA 10.0,  cuDNN 7.4.2, TensorFlow 2.0.0

CUDAを入れたのがかなり前で、なぜ10.0を入れようと思ったのか覚えていない。
DeepLabCut(GUI)の起動やアノテーションは問題なく、Trainingまで行って喜んだものの、Successfully opened dynamic library libcudnn.so.7 という表示が出て途中で止まる。どうやらCUDAとcuDNNとtfのバージョンが合っていない時に起こる現象らしい。

Starting multi-animal training…
2022-05-10 17:16:49.359956: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7

image.scで聞いてみる

CUDAとcuDNNとtfのバージョンは合っているのになぜ?と思ってimage.scで聞いてみた。RTX 3090にはCUDA 11系を使う必要があることを知った(というか最初に見たページにも似たようなことが書いてあったが理解していなかった)。感謝。

その他:WSL (Ubuntu) からcuDNNがwgetできない

cuDNNのダウンロードページに行き着くにはログインの必要があるので、普通にwgetしようとしても403 forbiddenが出てしまう。
Linux弱者すぎてよくわからないので、結局ブラウザからWindows側にダウンロードした。

いいなと思ったら応援しよう!