<p>Detectron ops lib nicht gefunden</p>

Erstellt am 7. Feb. 2018  ·  27Kommentare  ·  Quelle: facebookresearch/Detectron

Nachdem ich caffe2 aus dem Quellcode auf Ubuntu 16.04 installiert und versucht habe, mit: python2 detectron/tests/test_spatial_narrow_as_op.py zu testen, erhalte ich Folgendes:

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

Das Detektormodul befindet sich jedoch im Ordner modules . Muss ich CMakeLists irgendwie ändern, bevor ich caffe2 installiere, um sicherzustellen, dass es richtig eingebunden wird?

System Information

  • Betriebssystem: Ubuntu 16.04
  • Compiler-Version: gcc-Version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)
  • CUDA-Version: 8.0
  • cuDNN-Version: 6.0.21
  • NVIDIA-Treiberversion:
  • GPU-Modelle (für alle Geräte, wenn nicht alle gleich): 4x Tesla k80
  • PYTHONPATH Umgebungsvariable: /usr/local:/home/ubuntu/caffe2/build
  • python --version Ausgabe: 2.7.12

Hilfreichster Kommentar

Ich habe alle Befehle während meiner Installation aufgeschrieben, also dachte ich, dass dies bei der Fehlersuche helfen könnte. Ich habe gesehen, dass du es gelöst hast. Aber vielleicht kann dies anderen als Richtlinie helfen. Viel Glück an alle!

System Information

  • Amazon AWS-Instanz g3.4xlarge (NVIDIA Tesla M60)
  • Ubuntu 16.04

Installation

Ich habe die Caffe2-Dokumentation und die Detectron-Dokumentation als Richtlinie verwendet

NVIDIA-Treiber aktualisieren

Treiber herunterladen

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

Abhängigkeiten installieren

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 installieren

Link: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
Suchen Sie nach der neuesten Version. Verwenden Sie wenn möglich cuda 8. Ich habe verwendet: 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 installieren

Suchen Sie nach der neuesten Version: https://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 installieren

Aufgrund der schnellen Entwicklung von Caffe2 müssen Sie das Repository möglicherweise auf die letzte Build-Passing-Version zurücksetzen. Sie können dies im Caffe2 GitHub-Repository überprüfen. Klicken Sie oben in der Datei README.md auf das Symbol für bestandene/fehlgeschlagene Builds. Auf der linken Seite können Sie den letzten Build überprüfen und den letzten bestandenen Build auswählen. Klicken Sie auf den Build und kopieren Sie die Commit-Nummer.

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

Umgebungsvariablen festlegen

fügen Sie diese Zeilen zu .bashrc hinzu:

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

Caffe2 & GPU testen

Testen Sie Ihre Caffe2-Installation:

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

Testen Sie die GPU-Installation. Der Rückgabewert muss größer als 0 sein:

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

Detectron-Abhängigkeiten installieren

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

Zeile zu .bashrc hinzufügen:

export COCOAPI=$WANTED-DIRECTORY/cocoapi

Vergessen Sie nicht, die Daten von der Coco-Website in diesem Verzeichnis herunterzuladen. Aufbau wie in den Daten README.md beschrieben

Detektor installieren

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

Überprüfen Sie die Installation

python2 detectron/tests/test_spatial_narrow_as_op.py

Hoffe ich konnte einigen Leuten helfen :)

Alle 27 Kommentare

Ich habe das Problem gelöst. Es gab kein Problem, ich hatte einfach und dummerweise einen Tippfehler in meinem PYTHONPATH. Ich habe das behoben und es funktioniert jetzt einwandfrei. Danke für diese tolle Ressource!

Ich habe alle Befehle während meiner Installation aufgeschrieben, also dachte ich, dass dies bei der Fehlersuche helfen könnte. Ich habe gesehen, dass du es gelöst hast. Aber vielleicht kann dies anderen als Richtlinie helfen. Viel Glück an alle!

System Information

  • Amazon AWS-Instanz g3.4xlarge (NVIDIA Tesla M60)
  • Ubuntu 16.04

Installation

Ich habe die Caffe2-Dokumentation und die Detectron-Dokumentation als Richtlinie verwendet

NVIDIA-Treiber aktualisieren

Treiber herunterladen

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

Abhängigkeiten installieren

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 installieren

Link: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
Suchen Sie nach der neuesten Version. Verwenden Sie wenn möglich cuda 8. Ich habe verwendet: 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 installieren

Suchen Sie nach der neuesten Version: https://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 installieren

Aufgrund der schnellen Entwicklung von Caffe2 müssen Sie das Repository möglicherweise auf die letzte Build-Passing-Version zurücksetzen. Sie können dies im Caffe2 GitHub-Repository überprüfen. Klicken Sie oben in der Datei README.md auf das Symbol für bestandene/fehlgeschlagene Builds. Auf der linken Seite können Sie den letzten Build überprüfen und den letzten bestandenen Build auswählen. Klicken Sie auf den Build und kopieren Sie die Commit-Nummer.

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

Umgebungsvariablen festlegen

fügen Sie diese Zeilen zu .bashrc hinzu:

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

Caffe2 & GPU testen

Testen Sie Ihre Caffe2-Installation:

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

Testen Sie die GPU-Installation. Der Rückgabewert muss größer als 0 sein:

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

Detectron-Abhängigkeiten installieren

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

Zeile zu .bashrc hinzufügen:

export COCOAPI=$WANTED-DIRECTORY/cocoapi

Vergessen Sie nicht, die Daten von der Coco-Website in diesem Verzeichnis herunterzuladen. Aufbau wie in den Daten README.md beschrieben

Detektor installieren

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

Überprüfen Sie die Installation

python2 detectron/tests/test_spatial_narrow_as_op.py

Hoffe ich konnte einigen Leuten helfen :)

@genekogan

Ich habe das gleiche Problem, wenn ich versuche, Detectron auf der Plattform von AMI von AWS zu erstellen.
Ich bin mir nicht sicher, ob mein PYTHONPATH richtig ist
hier ist mein PYTHONPATH:/home/ec2-user/src/caffe2/build

Ich frage mich, was das Verzeichnis "build" enthalten soll.
Hier sind die Dateien, die in meinem "build" -Verzeichnis enthalten sind:
screen shot 2018-03-14 at 12 29 28 pm

Sind die genauso wie bei dir?

Vielen Dank!

setze PYTHONPATH oder pth Datei um ${CAFFE2_ROOT}/build einzuschließen

Custom Caffe2 CPU oder GPU Operator lib not found: AssertionError: Custom ops lib not found at '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu.so'Gefunden, wenn test_zero_even_op.py ausgeführt wird, aber andere Tests können bestehen, Detectron ops lib : /usr/local/lib/libcaffe2_detectron_ops_gpu.so gefunden. Könnten Sie mir eine Idee geben?

@genekogan kannst du mir helfen? Die allgemeinen Tests bestehen alle mit der Information „/usr/local/lib/libcaffe2_detectron_ops_gpu.so found“. Wenn ich jedoch die benutzerdefinierte Op teste und test_zero_even_op.py ausführe, wird der Fehler "Custom Ops Lib not found at '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu" ausgegeben.

@ ym547559398 Ich bin mir des spezifischen Fehlers nicht sicher, den Sie erhalten. Ich habe mein Problem mit genau dem gelöst, was @huhai463127310 gesagt hat: Stellen Sie sicher, dass Sie PYTHONPATH so einstellen, dass es ${CAFFE2_ROOT}/build enthält

@genekogan Danke! Ich habe es gelöst. Ein ganz einfacher Konflikt~

Ich habe immer noch das gleiche Problem, da caffe2 in pytorch integriert ist.

@mehditlili Hast du den PYTHONPATH eingestellt? Oder ich denke, uns fehlen einige erweiterte Ops, und es gibt eine Anleitung für uns, die uns hilft, den ops-Ordner zu verwenden und erweiterte Ops zu erstellen?

@mattifrind

Da die Verteilung von pytorch/caffe2 über Conda offiziell ist, sollte es keine zusätzliche Einrichtung geben, um diese Ops-Module zu finden. Während libcaffe2_detectron_ops_gpu.so über die Standard-PATH-Umgebung gefunden werden kann, sollte der Installationspfad von pytorch standardmäßig ohne Benutzereingriff durchsucht werden. Das einfache Einfügen des Installationspfads von pytorch sys.path.insert(0, torch.__path__[0] zur Laufzeit würde sicherstellen, dass die Detectron-Ops (neueste Version) gefunden werden.

Mein Problem ist, dass Detectron anscheinend die Header-Dateien in Caffe2/core haben möchte, aber der offizielle Build von Pytorch in Anacdona enthält Caffe2/core nicht. Muss ich eine zusätzliche pytorch-Installation durchführen und diesen Pfad an Caffe2_Dir anhängen?

Ich habe dieses Problem gelöst, indem ich "torch.pth" zum Verzeichnis ~/.conda/envs/dl/lib/python2.7/site-packages" hinzugefügt habe, da sich "libcaffe2_detectron_ops_gpu.so" im Verzeichnis "site-packages/torch" befindet.

Torch.pth enthält nur einen Pfad:
/home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch

PS: Dieser Fehler führt die folgende Funktion aus. Sie können "ops_path = os.path.join(prefix, 'lib/libcaffe2_detectron_ops_gpu.so')" sehen, um die .so-Datei zu erhalten.

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

Ich habe deinen Vorschlag ausprobiert, aber es hat nicht funktioniert und ich erhalte den gleichen Fehler.
Hat jemand einen anderen Workaround vorzuschlagen?

@zabatani

Stellen Sie sicher, dass sich libcaffe2_detectron_ops_gpu.so im Pfad lib/ unter torch.__path__[0] ?
Abhängig von Ihrer Installation kann es sich an einer anderen Stelle befinden oder Sie haben möglicherweise mehrere Einträge in torch.__path__ .
Drucken Sie den Inhalt aus und listen Sie ihn auf, um zu ermitteln, wo er sich befindet.
Alternativ können Sie es der env-Variablen PATH hinzufügen.

Wenn Sie caffe2 verwenden, indem Sie pytorch-nightly installieren, können Sie libcaffe2_detectron_ops_gpu.so (es befindet sich irgendwo in /home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch ) mit /usr/lib oder den lib der virtuellen Umgebung kopieren oder verknüpfen.
Für mich geht das.

Nachdem Sie die Umgebungsvariable PYTHONPATH hinzugefügt haben: /path/to/pytorch/build, wurde der Test bestanden

@suica Das hat bei mir funktioniert. Ich konnte den Link nicht in /ur/lib einfügen und verwende Conda anstelle von virtualenv. Ich habe es in /path/to/conda/env/lib und es funktioniert. Vielen Dank!

@genekogan Danke! Ich habe einen sehr einfachen Konflikt gelöst~

Wie haben Sie das aufgetretene Problem gelöst?

Ich habe das gleiche Problem, aber in Colab, eine Idee?

@genekogan kannst du mir helfen? Allgemeine Tests bestehen alle die Information "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found". Wenn ich jedoch die benutzerdefinierte Operation teste und test_zero_even_op.py ausführe, wird die Fehlermeldung "Die Bibliothek für benutzerdefinierte Operationen wurde nicht gefunden in'/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu" ausgegeben.
Können Sie mir sagen, wie Sie dieses Problem gelöst haben? Ich habe den gleichen Fehler festgestellt

@genekogan kannst du mir helfen? Allgemeine Tests bestehen alle die Information "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found". Wenn ich jedoch die benutzerdefinierte Operation teste und test_zero_even_op.py ausführe, wird die Fehlermeldung "Die Bibliothek für benutzerdefinierte Operationen wurde nicht gefunden in'/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu" ausgegeben.
Können Sie mir sagen, wie Sie dieses Problem gelöst haben? Ich habe den gleichen Fehler festgestellt

Kann ich nicht lösen, tut mir leid.

Auch ich habe den gleichen Fehler, wenn ich versuche, das Netzwerk zu trainieren mit:
python2-tools/train_net.py \
--cfg configs/DensePose_ResNet50_FPN_single_GPU.yaml \
OUTPUT_DIR /tmp/detectron-output
Die Installationstests von Detectron und caffe2 bestehen beide erfolgreich.
Die Fehlerausgabe:
Detectron ops lib gefunden: /usr/local/lib/python2.7/site-packages/torch/lib/libcaffe2_detectron_ops_gpu.so
Traceback (letzter Anruf zuletzt):
Datei "/usr/local/densepose/tools/train_net.py", Zeile 35, in
c2_utils.import_custom_ops()
Datei "/usr/local/densepose/detectron/utils/c2.py", Zeile 39, in import_custom_ops
custom_ops_lib = envu.get_custom_ops_lib()
Datei "/usr/local/densepose/detectron/utils/env.py", Zeile 85, in get_custom_ops_lib
'Benutzerdefinierte Ops-Bibliothek nicht gefunden unter \'{}\''.format(custom_ops_lib)
AssertionError: Benutzerdefinierte Ops-Bibliothek nicht gefunden unter '/usr/local/densepose/build/libcaffe2_detectron_custom_ops_gpu.so'

@genekogan Danke! Ich habe es gelöst. Ein ganz einfacher Konflikt~

@genekogan你能帮帮我吗?一般测试全部通过信息“/usr/local/lib/libcaffe2_detectron_ops_gpu.so gefunden“。但是,当我测试自定义操作并运行test_zero_even_op.py时,它会抛出错误“未在'/ Pfad / zu / zu / Detectron / build / libcaffe2_detectron_custom_ops_gpu中找到自定义操作库”。
Können Sie mir sagen, wie Sie dieses Problem gelöst haben? Ich bin auf den gleichen Fehler gestoßen

Und ich kann die Datei 'libcaffe2_detectron_custom_ops_gpu.so' nicht finden. Ich habe überprüft, dass sich caffe2/pytorch in der Umgebungsvariablen PYTHONPATH befindet.

hab die lösung gefunden

in der Datei /Pfad zur Bibliothek/densepose/detectron/utils/env.py
Bearbeiten Sie Zeile 19
_CMAKE_INSTALL_PREFIX = '/usr/lib'
zu
_CMAKE_INSTALL_PREFIX = 'Pfad zum lib-Ordner von pytorch, den Sie mit cmake oder der Datei setup.py erstellt haben/'
und wieder laufen :)

Ich habe kein Detektormodul in caffe2. Ich habe Caffe2 über pytorch installiert. Es wird richtig installiert, aber es hat kein Detektormodul. kann ich irgendeine hilfe bekommen.

Danke im Voraus

Hey Leute, das Ziel dieses Codeblocks ist es, die Datei "libcaffe2_detectron_ops_gpu.so" zu finden
", also mach das einfach:

  1. Suchen Sie die Datei selbst: find / -name libcaffe2_detectron_ops_gpu.so
  2. das Suchergebnis zur Suchliste hinzufügen

@genekogan Danke! Ich habe es gelöst. Ein ganz einfacher Konflikt~

wie kann ich es lösen, ich habe das gleiche problem, danke

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen