Detectron: CPU y compatibilidad pura con inferencia de Caffe2 / C ++, incluidos dispositivos móviles ("¿el modelo se puede usar para teléfonos móviles como Android?")

Creado en 24 ene. 2018  ·  16Comentarios  ·  Fuente: facebookresearch/Detectron

el modelo se puede utilizar para teléfonos móviles como Android

planned feature

Comentario más útil

Planeamos proporcionar una herramienta de conversión e instrucciones sobre cómo ejecutar modelos de Detectron en teléfonos móviles en el futuro.

Todos 16 comentarios

Planeamos proporcionar una herramienta de conversión e instrucciones sobre cómo ejecutar modelos de Detectron en teléfonos móviles en el futuro.

Al intentar compilar solo para inferencia de CPU, caffe2 se instaló correctamente. La ejecución de test_spatial_narrow_as_op.py falla debido a que falta una biblioteca de GPU.

$ python ../tests/test_spatial_narrow_as_op.py
ADVERTENCIA: root : esta ejecución de caffe2 python no es compatible con GPU. Funcionará en modo solo CPU.
ADVERTENCIA: root : mensaje de depuración: ningún módulo llamado caffe2_pybind11_state_gpu
Rastreo (llamadas recientes más última):
Archivo "../tests/test_spatial_narrow_as_op.py", línea 88, en
utils.c2.import_detectron_ops ()
Archivo "/home/user/Detectron/lib/utils/c2.py", línea 41, en import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib ()
Archivo "/home/user/Detectron/lib/utils/env.py", línea 73, en get_detectron_ops_lib
'la versión incluye el módulo Detectron'). formato (detectron_ops_lib)
AssertionError: Detectron ops lib no encontrado en '/home/user/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so'; asegúrese de que su versión Caffe2 incluya el módulo Detectron

@rbgirshick , ¿podemos hacer inferencias sin GPU? Obteniendo el mismo error que @ ss32

Al intentar compilar solo para inferencia de CPU, caffe2 se instaló correctamente. La ejecución de test_spatial_narrow_as_op.py falla debido a que falta una biblioteca de GPU.

$ python ../tests/test_spatial_narrow_as_op.py
ADVERTENCIA: root : esta ejecución de caffe2 python no es compatible con GPU. Funcionará en modo solo CPU.
ADVERTENCIA: root : mensaje de depuración: ningún módulo llamado caffe2_pybind11_state_gpu
Rastreo (llamadas recientes más última):
Archivo "../tests/test_spatial_narrow_as_op.py", línea 88, en
utils.c2.import_detectron_ops ()
Archivo "/home/user/Detectron/lib/utils/c2.py", línea 41, en import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib ()
Archivo "/home/user/Detectron/lib/utils/env.py", línea 73, en get_detectron_ops_lib
'la versión incluye el módulo Detectron'). formato (detectron_ops_lib)
AssertionError: Detectron ops lib no encontrado en '/home/user/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so'; asegúrese de que su versión Caffe2 incluya el módulo Detectron

Tengo el mismo problema aquí. Uso de binarios prediseñados en Mac.

Frente al mismo problema. He intentado compilar caffe2 a partir de la fuente, así como mediante el uso de binarios prediseñados en macOS.

Tengo el mismo problema (consulte el registro de errores).

Mi objetivo: ejecutar una prueba en MacOs solo con CPU.

Paso: 1) instale todas las demás dependencias con cond;
2) instale caffe2 con conda.
3) instale detectron con system pip (python), luego coloque el directorio lib en la variable PYTHONPATH.

Entonces tengo el mismo problema anterior:

ADVERTENCIA: root : esta ejecución de caffe2 python no es compatible con GPU. Funcionará en modo solo CPU.
ADVERTENCIA: root : mensaje de depuración: ningún módulo llamado caffe2_pybind11_state_gpu
E0204 13: 06: 36.049393 2041434112 init_intrinsics_check.cc:54] La característica de CPU avx está presente en su máquina, pero el binario Caffe2 no está compilado con ella. Significa que es posible que no obtenga la velocidad máxima de su CPU.
E0204 13: 06: 36.049954 2041434112 init_intrinsics_check.cc:54] La función de CPU avx2 está presente en su máquina, pero el binario Caffe2 no está compilado con ella. Significa que es posible que no obtenga la velocidad máxima de su CPU.
E0204 13: 06: 36.049964 2041434112 init_intrinsics_check.cc:54] La función de CPU fma está presente en su máquina, pero el binario Caffe2 no está compilado con ella. Significa que es posible que no obtenga la velocidad máxima de su CPU.
Rastreo (llamadas recientes más última):
Archivo "/tmp/test_spatial_narrow_as_op.py", línea 88, en
utils.c2.import_detectron_ops ()
Archivo "/Users/wangy/python/detectron/lib/utils/c2.py", línea 41, en import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib ()
Archivo "/Users/wangy/python/detectron/lib/utils/env.py", línea 73, en get_detectron_ops_lib
'la versión incluye el módulo Detectron'). formato (detectron_ops_lib)
AssertionError: Detectron ops lib no encontrado en '/Users/wangy/miniconda2/lib/python2.7/site-packages/lib/libcaffe2_detectron_ops_gpu.so';

@CancerGenome Es probable que eso no esté relacionado con el problema exclusivo de la GPU. Tienes que instalar la versión Caffe2 con detectron como módulo (como se dice en las instrucciones INSTALL.md ). Se puede encontrar aqui

@ ss32 resuelvo este problema。Debido a que mi computadora ha sido instalada caffe1 y caffe2, luego comento la variable de entorno caffe1 que es la variable PYTHONPATH. y agregue la variable de entorno de caffe2. Finalmente, tengo éxito, solo hago:
gedit ~ / .bashrc
comenta esto:

exportar PYTHONPATH = / ruta de acceso / caffe / python: $ PYTHONPATH

Agrega esto:
exportar PYTHONPATH = / ruta / a / caffe2 / build: $ PYTHONPATH

espero ayudarte! afortunadamente ~

Hola @rbgirshick hace aproximadamente tres semanas, pasé un domingo por la tarde instalando caffe2 desde la fuente en una caja de desarrollo con una GPU habilitada para CUDA de 4Gb en Ubuntu 16.04 con la esperanza de poder hacer retroalimentación en algunas imágenes más grandes, digamos 1920x1080 en la CPU para ver la calidad del enmascaramiento. Pero descubrí que estaba vinculado a la biblioteca de solo GPU:

lib / python2.7 / site-packages / lib / libcaffe2_detectron_ops_gpu.so

Así que actualmente me queda la opción de usar la computación en la nube de AWS para hacer el enmascaramiento o comprar hardware más nuevo habilitado para CUDA.

¿Tiene una línea de tiempo para hablar sobre cuándo se realizaría la implementación de la CPU única?

Instalé caffe2 y Detectron en mi RaspberryPi. Tener el mismo problema.

ADVERTENCIA: root : esta ejecución de caffe2 python no es compatible con GPU. Funcionará en modo solo CPU.
ADVERTENCIA: root : mensaje de depuración: ningún módulo llamado caffe2_pybind11_state_gpu
INFO: caffe2.python.net_drawer : No se puede importar pydot, que es necesario para dibujar una red. Esto normalmente se puede instalar en Python con "pip install pydot". Además, pydot requiere graphviz para convertir archivos dot a pdf: en ubuntu, esto generalmente se puede instalar con "sudo apt-get install graphviz".
net_drawer no se ejecutará correctamente. Instale las dependencias correctas.
Rastreo (llamadas recientes más última):
Archivo "test_spatial_narrow_as_op.py", línea 88, en
utils.c2.import_detectron_ops ()
Archivo "/home/pi/detectron/lib/utils/c2.py", línea 41, en import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib ()
Archivo "/home/pi/detectron/lib/utils/env.py", línea 73, en get_detectron_ops_lib
'la versión incluye el módulo Detectron'). formato (detectron_ops_lib)
AssertionError: Detectron ops lib no encontrado en '/home/pi/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so'; asegúrese de que su versión Caffe2 incluya el módulo Detectron

La misma pregunta, ¿es posible la inferencia solo de CPU? Quiero probar Detectron pero no puedo hacerlo; mi sistema operativo host es Windows (Detectron no lo admite, según tengo entendido) y en las máquinas virtuales no puedo usar la GPU.
Dice:

AssertionError: Detectron ops lib no encontrado; asegúrese de que su versión Caffe2 incluya el módulo Detectron

@todos Por favor, vea la nota en caffe2/modules/detectron/CMakeLists.txt

# Note(ilijar): Since Detectron ops currently have no
# CPU implementation, we only build GPU ops for now.

¡El módulo detectron en caffe2 está disponible solo en modo GPU !

Simplemente revisé INSTALL.md nuevamente y la sección de notas de requisitos dice claramente "Detectron actualmente no tiene implementaciones de CPU".

Creo que los números 372 y 449 terminan de resolver la parte del problema de la CPU.
Entonces, si desea que esto se incluya, creo que ayudar a los mantenedores a revisar estos dos RP (y también votarlos) podría facilitar el proceso.

Si está interesado en el soporte de CPU , puede ayudarnos a mejorarlo votando e incluso revisando estos dos temas: # 372 y # 449.

Ps: esto también podría ayudar para la inferencia pura de Caffe2 / PyTorch, pero en un futuro más remoto

@rbgirshick @gadcam A partir de ahora, ¿no es posible ejecutar Detectron en Android?

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

junxiaoge picture junxiaoge  ·  3Comentarios

fangpengcheng95 picture fangpengcheng95  ·  4Comentarios

kleingeo picture kleingeo  ·  3Comentarios

pacelu picture pacelu  ·  3Comentarios

twmht picture twmht  ·  3Comentarios