Après avoir installé caffe2 à partir des sources sur Ubuntu 16.04 et essayé de tester avec : python2 detectron/tests/test_spatial_narrow_as_op.py
j'obtiens ce qui suit :
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
Mais le module detectron est présent dans le dossier modules
. Dois-je modifier CMakeLists d'une manière ou d'une autre avant d'installer caffe2 pour m'assurer qu'il est correctement inclus ?
PYTHONPATH
: /usr/local:/home/ubuntu/caffe2/buildpython --version
sortie : 2.7.12J'ai résolu le problème. Il n'y avait pas de problème, j'avais simplement et bêtement une faute de frappe dans mon PYTHONPATH. J'ai corrigé cela et cela fonctionne maintenant correctement. Merci pour cette excellente ressource !
J'ai écrit toutes les commandes lors de mon installation, alors j'ai pensé que cela pourrait vous aider dans votre recherche de bogues. J'ai vu que tu l'avais résolu. Mais peut-être que cela peut aider les autres comme ligne directrice. Bonne chance à tous!
J'ai utilisé la documentation Caffe2 et la documentation Detectron comme ligne directrice
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
Lien : http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
Recherchez la version la plus récente. Utilisez si possible cuda 8. J'ai utilisé : 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
Recherchez la version la plus récente : 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
En raison du développement rapide de Caffe2, vous devrez peut-être réinitialiser le référentiel à la dernière version de passage de build. Vous pouvez le vérifier sur le référentiel Caffe2 GitHub . Cliquez sur l'icône de réussite/échec de la construction en haut du fichier README.md. Sur la gauche, vous pouvez vérifier la dernière version et sélectionner la dernière version en cours. Cliquez sur le build et copiez le numéro de commit.
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
ajoutez ces lignes à .bashrc :
export PYTHONPATH=/usr/local
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Testez votre installation Caffe2 :
python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
Testez l'installation du GPU. La valeur de retour doit être supérieure à 0 :
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
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
ajouter une ligne à .bashrc :
export COCOAPI=$WANTED-DIRECTORY/cocoapi
N'oubliez pas de télécharger les données du site coco dans ce répertoire. Structure telle que décrite dans les données README.md
git clone https://github.com/facebookresearch/detectron detectron
cd detectron/lib && sudo make -j16
vérifier l'installation
python2 detectron/tests/test_spatial_narrow_as_op.py
J'espère pouvoir aider certaines personnes :)
@genekogan
J'ai le même problème lorsque j'essaie de construire detectron sur la plate-forme d'AMI d'AWS.
Je ne sais pas si mon PYTHONPATH est correct
voici mon PYTHONPATH :/home/ec2-user/src/caffe2/build
Je me demande ce que le répertoire "build" devrait inclure ?
Voici les fichiers inclus dans mon répertoire "build":
Sont-ils comme les vôtres ?
Merci!
définissez PYTHONPATH ou le fichier pth pour inclure ${CAFFE2_ROOT}/build
bibliothèque d'opérateurs CPU ou GPU Caffe2 personnalisée introuvable : AssertionError : bibliothèque d'opérations personnalisée introuvable dans '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu.so'Found lors de l'exécution de test_zero_even_op.py mais d'autres tests peuvent réussir, Detectron ops lib : /usr/local/lib/libcaffe2_detectron_ops_gpu.so trouvé. Pouvez-vous me donner une idée ?
@genekogan pouvez-vous m'aider? Les tests généraux passent tous avec l'information " /usr/local/lib/libcaffe2_detectron_ops_gpu.so found ". Cependant, lorsque je teste l'opération personnalisée et lance le test_zero_even_op.py, il renvoie l'erreur "Custom ops lib not found at '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu".
@ ym547559398 je ne suis pas sûr de l'erreur spécifique que vous obtenez. j'ai résolu mon problème avec exactement ce que @ huhai463127310 a dit : assurez-vous de définir PYTHONPATH pour inclure ${CAFFE2_ROOT}/build
@genekogan Merci ! Je l'ai résolu. Un conflit très simple~
J'ai toujours le même problème maintenant que caffe2 est intégré dans pytorch, j'ai compilé pytorch à partir de la dernière source mais l'exécution de detetron simple_infer se plaint toujours de ne pas trouver detectron_ops (pas de gpu dans mon cas)
@mehditlili Avez-vous défini le PYTHONPATH ? Ou bien, je pense que nous manquons d'opérations étendues, et il existe un guide pour nous aider à utiliser le dossier ops et à créer des opérations étendues?
@mattifrind
Étant donné que la distribution de pytorch/caffe2 via conda est officielle, il ne devrait y avoir aucune configuration supplémentaire pour localiser ces modules d'opérations. Alors que libcaffe2_detectron_ops_gpu.so
peut être localisé via l'environnement PATH standard, le chemin d'installation de pytorch doit être recherché par défaut sans intervention de l'utilisateur. Le simple fait d'insérer le chemin d'installation de pytorch sys.path.insert(0, torch.__path__[0]
au moment de l'exécution garantirait de trouver les opérations de detectron (dernière version).
Mon problème est que Detectron veut apparemment les fichiers d'en-tête dans Caffe2/core, mais la version officielle de Pytorch dans Anacdona n'inclut pas Caffe2/core. Dois-je effectuer une installation supplémentaire de pytorch et ajouter ce chemin à Caffe2_Dir ?
J'ai résolu ce problème en ajoutant "torch.pth" au répertoire ~/.conda/envs/dl/lib/python2.7/site-packages ". Parce que " libcaffe2_detectron_ops_gpu.so " se trouve dans le répertoire " site-packages/torch ".
torch.pth ne contient qu'un seul chemin :
/home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch
PS: cette erreur exécutera la fonction ci-dessous. Vous pouvez voir "ops_path = os.path.join(prefix, 'lib/libcaffe2_detectron_ops_gpu.so')" est d'obtenir le fichier .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
J'ai essayé votre suggestion mais cela n'a pas fonctionné et j'obtiens la même erreur.
Quelqu'un a-t-il une autre solution de contournement à suggérer?
@zabatani
Assurez-vous que libcaffe2_detectron_ops_gpu.so
est dans le chemin lib/
sous torch.__path__[0]
?
Selon votre installation, il peut se trouver ailleurs ou vous pouvez avoir plusieurs entrées dans torch.__path__
.
Imprimez et répertoriez le contenu pour localiser où il se trouve.
Alternativement, vous pouvez l'ajouter à la variable d'environnement PATH.
Si vous utilisez caffe2 en installant pytorch-nightly, vous pouvez copier ou lier libcaffe2_detectron_ops_gpu.so
(c'est quelque part comme /home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch
) vers /usr/lib
ou le lib
l'environnement virtuel
Ça marche pour moi.
Après avoir ajouté la variable d'environnement PYTHONPATH : /path/to/pytorch/build, le test a réussi
@suica Cela a fonctionné pour moi. Je n'ai pas pu mettre le lien dans /ur/lib
et j'utilise conda au lieu de virtualenv. Je l'ai mis dans /path/to/conda/env/lib
et ça marche. Merci!
@genekogan Merci ! J'ai résolu un conflit très simple~
Comment avez-vous résolu le problème que vous avez rencontré ?
J'ai le même problème mais en colab, une idée ?
@genekogan pouvez-vous m'aider? Les tests généraux passent tous les informations "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found". Cependant, lorsque je teste l'opération personnalisée et que j'exécute test_zero_even_op.py, l'erreur "La bibliothèque d'opérations personnalisées n'a pas été trouvée dans'/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu".
Pouvez-vous me dire comment vous avez résolu ce problème ? J'ai rencontré la même erreur
@genekogan pouvez-vous m'aider? Les tests généraux passent tous les informations "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found". Cependant, lorsque je teste l'opération personnalisée et que j'exécute test_zero_even_op.py, l'erreur "La bibliothèque d'opérations personnalisées n'a pas été trouvée dans'/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu".
Pouvez-vous me dire comment vous avez résolu ce problème ? J'ai rencontré la même erreur
Je ne peux pas résoudre, désolé.
J'ai aussi la même erreur lorsque j'essaie d'entraîner le réseau en utilisant :
outils python2/train_net.py \
--cfg configs/DensePose_ResNet50_FPN_single_GPU.yaml \
OUTPUT_DIR /tmp/detectron-output
Les tests d'installation de Detectron et de caffe2 réussissent tous les deux.
La sortie d'erreur :
Bibliothèque d'opérations Detectron trouvée : /usr/local/lib/python2.7/site-packages/torch/lib/libcaffe2_detectron_ops_gpu.so
Traceback (appel le plus récent en dernier) :
Fichier "/usr/local/densepose/tools/train_net.py", ligne 35, dans
c2_utils.import_custom_ops()
Fichier "/usr/local/densepose/detectron/utils/c2.py", ligne 39, dans import_custom_ops
custom_ops_lib = envu.get_custom_ops_lib()
Fichier "/usr/local/densepose/detectron/utils/env.py", ligne 85, dans get_custom_ops_lib
'Lib d'opérations personnalisées introuvable dans \'{}\''.format(custom_ops_lib)
AssertionError : bibliothèque d'opérations personnalisée introuvable dans '/usr/local/densepose/build/libcaffe2_detectron_custom_ops_gpu.so'
@genekogan Merci ! Je l'ai résolu. Un conflit très simple~
@genekogan你能帮帮我吗?一般测试全部通过信息“/usr/local/lib/libcaffe2_detectron_ops_gpu.so found”。但是,当我测试自定义操作并运行test_zero_even_op.py时,它会抛出错误“未在'/ chemin / vers / vers / detectron / build / libcaffe2_detectron_custom_ops_gpu中找到自定义操作库”。
Pouvez-vous me dire comment vous avez résolu ce problème ? j'ai rencontré la même erreur
Et je n'arrive pas à trouver le fichier 'libcaffe2_detectron_custom_ops_gpu.so'. J'ai vérifié que caffe2/pytorch se trouve dans la variable d'environnement PYTHONPATH.
trouvé la solution
dans le fichier /chemin vers la bibliothèque/densepose/detectron/utils/env.py
éditer la ligne 19
_CMAKE_INSTALL_PREFIX = '/usr/lib'
à
_CMAKE_INSTALL_PREFIX = 'chemin vers le dossier lib de pytorch que vous avez construit en utilisant cmake ou le fichier setup.py/'
et recommencer :)
Je n'ai pas de module detectron dans caffe2. J'ai installé caffe2 via pytorch. Il s'installe correctement mais il n'a pas de module detectron. puis-je obtenir de l'aide.
Merci d'avance
Hé les gars, le but de ce bloc de code est de trouver le fichier "libcaffe2_detectron_ops_gpu.so
", alors faites simplement ceci:
@genekogan Merci ! Je l'ai résolu. Un conflit très simple~
comment le résoudre, j'ai le même problème, merci
Commentaire le plus utile
J'ai écrit toutes les commandes lors de mon installation, alors j'ai pensé que cela pourrait vous aider dans votre recherche de bogues. J'ai vu que tu l'avais résolu. Mais peut-être que cela peut aider les autres comme ligne directrice. Bonne chance à tous!
Informations système
Installation
J'ai utilisé la documentation Caffe2 et la documentation Detectron comme ligne directrice
Mettre à jour le pilote NVIDIA
Télécharger le pilote
Installation des dépendances
Installer CUDA
Lien : http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
Recherchez la version la plus récente. Utilisez si possible cuda 8. J'ai utilisé : cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
Installer cuDNN
Recherchez la version la plus récente : https://developer.nvidia.com/cudnn
Installer Caffe2
En raison du développement rapide de Caffe2, vous devrez peut-être réinitialiser le référentiel à la dernière version de passage de build. Vous pouvez le vérifier sur le référentiel Caffe2 GitHub . Cliquez sur l'icône de réussite/échec de la construction en haut du fichier README.md. Sur la gauche, vous pouvez vérifier la dernière version et sélectionner la dernière version en cours. Cliquez sur le build et copiez le numéro de commit.
Définir les variables d'environnement
ajoutez ces lignes à .bashrc :
Testez Caffe2 et GPU
Testez votre installation Caffe2 :
Testez l'installation du GPU. La valeur de retour doit être supérieure à 0 :
Installer les dépendances Detectron
ajouter une ligne à .bashrc :
N'oubliez pas de télécharger les données du site coco dans ce répertoire. Structure telle que décrite dans les données README.md
Installer Detectron
vérifier l'installation
J'espère pouvoir aider certaines personnes :)