<p>Detectron opslibが見つかりません</p>

作成日 2018年02月07日  ·  27コメント  ·  ソース: facebookresearch/Detectron

Ubuntu 16.04のソースからcaffe2をインストールし、次のコマンドでテストしようとすると、 python2 detectron/tests/test_spatial_narrow_as_op.py次のようになります。

No handlers could be found for logger "caffe2.python.net_drawer"
net_drawer will not run correctly. Please install the correct dependencies.
E0207 16:36:41.320443  4125 init_intrinsics_check.cc:59] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
Traceback (most recent call last):
  File "detectron/tests/test_spatial_narrow_as_op.py", line 88, in <module>
    utils.c2.import_detectron_ops()
  File "/home/gene/detectron/lib/utils/c2.py", line 41, in import_detectron_ops
    detectron_ops_lib = envu.get_detectron_ops_lib()
  File "/home/gene/detectron/lib/utils/env.py", line 73, in get_detectron_ops_lib
    'version includes Detectron module').format(detectron_ops_lib)
AssertionError: Detectron ops lib not found at '/usr/local/lib/python2.7/dist-packages/lib/libcaffe2_detectron_ops_gpu.so'; make sure that your Caffe2 version includes Detectron module

ただし、detectronモジュールはmodulesフォルダーにあります。 caffe2をインストールする前に、CMakeListsを何らかの方法で変更して、正しく含まれていることを確認する必要がありますか?

システムインフォメーション

  • オペレーティングシステム:Ubuntu 16.04
  • コンパイラバージョン:gccバージョン5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1〜16.04.5)
  • CUDAバージョン:8.0
  • cuDNNバージョン:6.0.21
  • NVIDIAドライバーバージョン:
  • GPUモデル(すべてが同じでない場合はすべてのデバイス用):4x Tesla k80
  • PYTHONPATH環境変数:/ usr / local:/ home / ubuntu / caffe2 / build
  • python --version出力:2.7.12

最も参考になるコメント

インストール中にすべてのコマンドを書き留めたので、これがバグ調査に役立つかもしれないと思いました。 あなたがそれを解決したのを見ました。 しかし、おそらくこれはガイドラインとして他の人を助けることができます。 みんな頑張ってね!

システムインフォメーション

  • Amazon AWSインスタンスg3.4xlarge(NVIDIA Tesla M60)
  • Ubuntu 16.04

インストール

ガイドラインとしてCaffe2ドキュメント

NVIDIAドライバーを更新する

ドライバーのダウンロード

sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1604_375.66-1_amd64.deb
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends

依存関係のインストール

sudo apt-get update
sudo apt-get install -y --no-install-recommends build-essential cmake git libgoogle-glog-dev libgtest-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev openmpi-bin openmpi-doc protobuf-compiler python-dev python-pip
sudo pip install setuptools future numpy protobuf enum networkx
sudo apt-get install -y --no-install-recommends libgflags-dev

CUDAをインストールする

リンク: http
最新バージョンを検索します。 可能であればcuda8を使用します。使用したもの:cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/..." //add selected file name
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda-8-0

cuDNNをインストールします

最新バージョンを検索します//developer.nvidia.com/cudnn

wget http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig

Caffe2をインストールします

Caffe2は急速に開発されているため、リポジトリを最後のビルド合格バージョンにリセットする必要がある場合があります。 これは、 Caffe2GitHubリポジトリで確認でき

Go to your selected installation directory: cd directory
git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
git reset --hard $COMMIT_NUMBER //unnecessary when builds passing
sudo make -j16 //exchange 16 by your number of cores
cd build && sudo make install

環境変数を設定する

次の行を.bashrcに追加します。

export PYTHONPATH=/usr/local
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Caffe2とGPUをテストする

Caffe2のインストールをテストします。

python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

GPUのインストールをテストします。 戻り値は0より大きくする必要があります。

python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

Detectronの依存関係をインストールします

sudo pip install numpy>=1.13 pyyaml>=3.12 matplotlib opencv-python>=3.2 setuptools Cython mock scipy
sudo git clone https://github.com/cocodataset/cocoapi.git $WANTED-DIRECTORY/cocoapi
cd $WANTED-DIRECTORY/cocoapi/PythonApi
sudo -H make install
sudo python setup.py install

.bashrcに行を追加します。

export COCOAPI=$WANTED-DIRECTORY/cocoapi

このディレクトリのcocoWebサイトからデータをダウンロードすることを忘れないでください。 データREADME.mdに記載されている構造

Detectronをインストールします

git clone https://github.com/facebookresearch/detectron detectron
cd detectron/lib && sudo make -j16

インストールを確認してください

python2 detectron/tests/test_spatial_narrow_as_op.py

私が何人かの人々を助けることができることを願っています:)

全てのコメント27件

私は問題を解決しました。 問題はありませんでした。PYTHONPATHにタイプミスがありました。 私はそれを修正しました、そしてそれは今正しく働きます。 この素晴らしいリソースをありがとう!

インストール中にすべてのコマンドを書き留めたので、これがバグ調査に役立つかもしれないと思いました。 あなたがそれを解決したのを見ました。 しかし、おそらくこれはガイドラインとして他の人を助けることができます。 みんな頑張ってね!

システムインフォメーション

  • Amazon AWSインスタンスg3.4xlarge(NVIDIA Tesla M60)
  • Ubuntu 16.04

インストール

ガイドラインとしてCaffe2ドキュメント

NVIDIAドライバーを更新する

ドライバーのダウンロード

sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1604_375.66-1_amd64.deb
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends

依存関係のインストール

sudo apt-get update
sudo apt-get install -y --no-install-recommends build-essential cmake git libgoogle-glog-dev libgtest-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev openmpi-bin openmpi-doc protobuf-compiler python-dev python-pip
sudo pip install setuptools future numpy protobuf enum networkx
sudo apt-get install -y --no-install-recommends libgflags-dev

CUDAをインストールする

リンク: http
最新バージョンを検索します。 可能であればcuda8を使用します。使用したもの:cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/..." //add selected file name
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda-8-0

cuDNNをインストールします

最新バージョンを検索します//developer.nvidia.com/cudnn

wget http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig

Caffe2をインストールします

Caffe2は急速に開発されているため、リポジトリを最後のビルド合格バージョンにリセットする必要がある場合があります。 これは、 Caffe2GitHubリポジトリで確認でき

Go to your selected installation directory: cd directory
git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
git reset --hard $COMMIT_NUMBER //unnecessary when builds passing
sudo make -j16 //exchange 16 by your number of cores
cd build && sudo make install

環境変数を設定する

次の行を.bashrcに追加します。

export PYTHONPATH=/usr/local
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Caffe2とGPUをテストする

Caffe2のインストールをテストします。

python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

GPUのインストールをテストします。 戻り値は0より大きくする必要があります。

python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

Detectronの依存関係をインストールします

sudo pip install numpy>=1.13 pyyaml>=3.12 matplotlib opencv-python>=3.2 setuptools Cython mock scipy
sudo git clone https://github.com/cocodataset/cocoapi.git $WANTED-DIRECTORY/cocoapi
cd $WANTED-DIRECTORY/cocoapi/PythonApi
sudo -H make install
sudo python setup.py install

.bashrcに行を追加します。

export COCOAPI=$WANTED-DIRECTORY/cocoapi

このディレクトリのcocoWebサイトからデータをダウンロードすることを忘れないでください。 データREADME.mdに記載されている構造

Detectronをインストールします

git clone https://github.com/facebookresearch/detectron detectron
cd detectron/lib && sudo make -j16

インストールを確認してください

python2 detectron/tests/test_spatial_narrow_as_op.py

私が何人かの人々を助けることができることを願っています:)

@genekogan

AWSのAMIのプラットフォームでdetectronをビルドしようとすると、同じ問題が発生します。
PYTHONPATHが正しいかどうかわかりません
これが私のPYTHONPATHです:/ home / ec2-user / src / caffe2 / build

「build」ディレクトリには何を含める必要があるのでしょうか。
これが私の「ビルド」ディレクトリに含まれているファイルです:
screen shot 2018-03-14 at 12 29 28 pm

彼らはあなたのものと同じですか?

ありがとう!

$ {CAFFE2_ROOT} / buildを含むようにPYTHONPATHまたはpthファイルを設定します

カスタムCaffe2CPUまたはGPUオペレーターライブラリが見つかりません:AssertionError:カスタムopsライブラリが '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu.so'に見つかりませんtest_zero_even_op.pyの実行時に見つかりましたが、他のテストに合格できます、Detectron ops lib :/usr/local/lib/libcaffe2_detectron_ops_gpu.soが見つかりました。 アイデアをいただけますか?

@genekogan助けてくれませんか? 一般的なテストはすべて、「/ usr / local / lib /libcaffe2_detectron_ops_gpu.soが見つかりました」という情報で合格します。 ただし、カスタムopをテストしてtest_zero_even_op.pyを実行すると、「Custom ops lib not found at '/ path / to / to / detectron / build / libcaffe2_detectron_custom_ops_gpu」というエラーがスローされます。

@ ym547559398発生している特定のエラーが@ huhai463127310が言ったことで問題を解決しました:PYTHONPATHに$ {CAFFE2_ROOT} / buildが含まれるように設定してください

@genekoganありがとうございます! 私はそれを解決しました。 非常に単純な対立〜

caffe2がpytorchに統合されているので、同じ問題が発生します。最新のソースからpytorchをコンパイルしましたが、detetron simple_inferを実行しても、detectron_opsが見つからない(私の場合はgpuがない)と文句を言います。

@mehditlili PYTHONPATHを設定しましたか? さもなければ、私たちはいくつかの拡張されたopsが不足していると思います、そしてopsフォルダーを使用して拡張されたopsを構築する方法を助けるためのガイドがありますか?

@mattifrind

condaを介したpytorch / caffe2の配布は公式であるため、これらのopsモジュールを見つけるための追加のセットアップはありません。 libcaffe2_detectron_ops_gpu.soは標準のPATH envを介して見つけることができますが、pytorchのインストールパスはデフォルトでユーザーの介入なしに検索する必要があります。 実行時にpytorch sys.path.insert(0, torch.__path__[0]のインストールパスを挿入するだけで、detectron ops(最新リリース)を確実に見つけることができます。

私の問題は、DetectronがCaffe2 / coreのヘッダーファイルを必要としているようですが、AnacdonaのPytorchの公式ビルドにはCaffe2 / coreが含まれていないことです。 追加のpytorchインストールを実行し、そのパスをCaffe2_Dirに追加する必要がありますか?

「torch.pth」を〜/ .conda / envs / dl / lib / python2.7 / site-packagesディレクトリに追加してこの問題を解決しました。「libcaffe2_detectron_ops_gpu.so」は「site-packages / torch」ディレクトリにあるためです。

torch.pthには、次のパスが1つだけ含まれています。
/home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch

PS:このエラーは以下の関数を実行します。 「ops_path = os.path.join(prefix、 'lib / libcaffe2_detectron_ops_gpu.so')」が.soファイルを取得することであることがわかります。

def get_detectron_ops_lib():
    """Retrieve Detectron ops library."""
    # Candidate prefixes for the detectron ops lib path
    # print("=> path list = :\n", _CMAKE_INSTALL_PREFIX, "\n", sys.prefix, '\n', sys.exec_prefix, '\n', sys.path)
    prefixes = [_CMAKE_INSTALL_PREFIX, sys.prefix, sys.exec_prefix] + sys.path
    # Search for detectron ops lib
    # print("=> prefixes = {}".format(prefixes))
    for prefix in prefixes:
        ops_path = os.path.join(prefix, 'lib/libcaffe2_detectron_ops_gpu.so')
        # print("=> ops_path = {}".format(ops_path))
        if os.path.exists(ops_path):
            # TODO(ilijar): Switch to using a logger
            print('Found Detectron ops lib: {}'.format(ops_path))
            break
    assert os.path.exists(ops_path), \
        ('Detectron ops lib not found; make sure that your Caffe2 '
         'version includes Detectron module')
    return ops_path

@farleylai

私はあなたの提案を試しましたが、うまくいきませんでした。同じエラーが発生します。
誰かが提案する別の回避策がありますか?

@zabatani

libcaffe2_detectron_ops_gpu.sotorch.__path__[0]下のパスlib/ことを確認しますか?
インストールによっては、別の場所にある場合や、 torch.__path__複数のエントリがある場合があります。
コンテンツを印刷して一覧表示し、場所を特定します。
または、env変数PATHに追加することもできます。

pytorch-nightlyをインストールしてcaffe2を使用している場合は、 libcaffe2_detectron_ops_gpu.so/home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torchような場所にあります)を/usr/libまたは仮想環境のlibコピーまたはリンクできます。
わたしにはできる。

PYTHONPATH環境変数/ path / to / pytorch / buildを追加した後、テストに合格しました

@suicaそれは私のために働いた。 リンクを/ur/lib入れることができず、virtualenvの代わりにcondaを使用しています。 私はそれを/path/to/conda/env/libに入れて、それは動作します。 ありがとう!

@genekoganありがとう!非常に単純な競合を解決しました〜

発生した問題をどのように解決しましたか?

私は同じ問題を抱えていますが、コラボでは、いくつかのアイデアがありますか?

@genekogan助けてくれませんか?一般的なテストはすべて、「/ usr / local / lib /libcaffe2_detectron_ops_gpu.soが見つかりました」という情報に合格します。ただし、カスタム操作をテストしてtest_zero_even_op.pyを実行すると、「カスタム操作ライブラリが '/ path / to / to / detectron / build / libcaffe2_detectron_custom_ops_gpuに見つかりませんでした」というエラーがスローされます。
この問題をどのように解決したか教えていただけますか?同じエラーが発生しました

@genekogan助けてくれませんか?一般的なテストはすべて、「/ usr / local / lib /libcaffe2_detectron_ops_gpu.soが見つかりました」という情報に合格します。ただし、カスタム操作をテストしてtest_zero_even_op.pyを実行すると、「カスタム操作ライブラリが '/ path / to / to / detectron / build / libcaffe2_detectron_custom_ops_gpuに見つかりませんでした」というエラーがスローされます。
この問題をどのように解決したか教えていただけますか?同じエラーが発生しました

解決できません、ごめんなさい。

以下を使用してネットワークをトレーニングしようとすると、私も同じエラーが発生します。
python2 tools / train_net.py \
--cfg configs / DensePose_ResNet50_FPN_single_GPU.yaml \
OUTPUT_DIR / tmp / detectron-出力
Detectronとcaffe2のインストールテストはどちらも正常に合格します。
エラー出力:
Detectron ops libが見つかりました:/usr/local/lib/python2.7/site-packages/torch/lib/libcaffe2_detectron_ops_gpu.so
トレースバック(最後の最後の呼び出し):
ファイル "/usr/local/densepose/tools/train_net.py"、35行目、
c2_utils.import_custom_ops()
import_custom_opsのファイル "/usr/local/densepose/detectron/utils/c2.py"、39行目
custom_ops_lib = envu.get_custom_ops_lib()
get_custom_ops_libのファイル "/usr/local/densepose/detectron/utils/env.py"、85行目
'カスタムopslibが\' {} \ ''。format(custom_ops_lib)に見つかりません
AssertionError:カスタムopsライブラリが「/usr/local/densepose/build/libcaffe2_detectron_custom_ops_gpu.so」に見つかりません

@genekoganありがとうございます! 私はそれを解決しました。 非常に単純な対立〜

@genekogan你能帮帮我吗?一般在 '/パス/から/へ/検出器/ビルド/ libcaffe2_detectron_custom_ops_gpu中找到自定义操作库」。
この問題をどのように解決したか教えていただけますか? 同じエラーが発生しました

そして、「libcaffe2_detectron_custom_ops_gpu.so」ファイルが見つからないようです。 caffe2 / pytorchがPYTHONPATH環境変数にあることを確認しました。

解決策を見つけました

ファイル/ library / densepose / detectron / utils /env.pyへのパス
19行目を編集
_CMAKE_INSTALL_PREFIX = '/ usr / lib'

_CMAKE_INSTALL_PREFIX = 'cmakeまたはsetup.pyファイル/を使用して構築したpytorchのlibフォルダーへのパス'
そしてもう一度実行します:)

caffe2にdetectronモジュールがありません。 pytorchを介してcaffe2をインストールしました。 正しくインストールされていますが、検出器モジュールがありません。 助けてもらえますか?

前もって感謝します

やあみんな、このコードブロックの目標はファイル「libcaffe2_detectron_ops_gpu.so」を見つけることです
"、だからこれを行うだけです:

  1. 自分でファイルを検索します:find / -name libcaffe2_detectron_ops_gpu.so
  2. 検索結果を検索リストに追加します

@genekoganありがとうございます! 私はそれを解決しました。 非常に単純な対立〜

それを解決する方法、私は同じ問題を抱えています、ありがとう

このページは役に立ちましたか?
0 / 5 - 0 評価