ошибка импорта caffe: даже после успешной установки, на ubuntu 18.04 - PullRequest
0 голосов
/ 09 февраля 2019

Я получаю ошибку импорта caffe даже после успешной установки с помощью команды sudo apt install caffe-cpu.Мне удалось найти файл caffe в /usr/lib/python3/dist-packages/caffe (путь был добавлен в PYTHONPATH).Также были установлены все требования, указанные в файле needs.txt каталога caffe.

Я использую Ubuntu 18.04 LTS, Python3.

Может ли кто-нибудь помочь мне с этой ошибкой?

import caffe        

Traceback (most recent call last):
      File "6_reconstruct_alphabet_image.py", line 17, in <module>
        import caffe
      File "/usr/lib/python3/dist-packages/caffe/__init__.py", line 1, in <module>
        from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
      File "/usr/lib/python3/dist-packages/caffe/pycaffe.py", line 15, in <module>
        import caffe.io
      File "/usr/lib/python3/dist-packages/caffe/io.py", line 2, in <module>
        import skimage.io
      File "/usr/lib/python3/dist-packages/skimage/__init__.py", line 158, in <module>
        from .util.dtype import *
      File "/usr/lib/python3/dist-packages/skimage/util/__init__.py", line 7, in <module>
        from .arraycrop import crop
      File "/usr/lib/python3/dist-packages/skimage/util/arraycrop.py", line 8, in <module>
        from numpy.lib.arraypad import _validate_lengths
    ImportError: cannot import name '_validate_lengths'

1 Ответ

0 голосов
/ 10 февраля 2019

Проблема решена: Произошла ошибка, поскольку сборка кафе не была выполнена успешно.Я не рекомендую использовать команду sudo apt install caffe-cpu (которая упоминается в официальном руководстве по установке caffe для Ubuntu);потому что это приведет к ошибке, как указано выше.Лучше установить из исходного кода.

Позвольте дать пошаговое руководство по успешной установке caffe в Ubuntu 18.04 LTS:

1] sudo apt-get install -y --no-install-recommends libboost-all-dev

2] sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev \ libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

3] git clone https://github.com/BVLC/caffe cd caffe cp Makefile.config.example Makefile.config

4] sudo pip install scikit-image protobuf cd python for req in $(cat requirements.txt); do sudo pip install $req; done

5] Изменить файл Makefile.config: Раскомментируйте строку CPU_ONLY := 1 и строку OPENCV_VERSION := 3.

6] Найдите строку LIBRARIES в Makefile и измените ее следующим образом:

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 \ opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

7] make all

Теперь выможет появиться какая-то ошибка, подобная этой:

CXX src/caffe/net.cpp src/caffe/net.cpp:8:18: fatal error: hdf5.h: No such file or directory compilation terminated. Makefile:575: recipe for target '.build_release/src/caffe/net.o' failed make: *** [.build_release/src/caffe/net.o] Error 1

Чтобы устранить эту ошибку, выполните шаг 8.

8] install libhdf5-dev Откройте Makefile.config, найдите строку, содержащую LIBRARY_DIRS и добавьте /usr/lib /x86_64-linux-gnu/hdf5/serial найдите INCLUDE_DIRS и добавьте /usr/include/hdf5/serial/ (за этот ответ SO) повторно make all

9] make test

10] make runtest

11] make pycaffe

Теперь вы можете получить ошибку, подобную этой:

CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory compilation terminated. Makefile:501: recipe for target 'python/caffe/_caffe.so' failed make: *** [python/caffe/_caffe.so] Error 1

Чтобы устранить эту ошибку, выполните шаг 12.

12] Найдите строку PYTHON_INCLUDE в Makefile.config и внесите следующие изменения:

`PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include`

13] Добавьте каталог модуля в наш $ PYTHONPATH, добавив эту строку в конец ~ /Файл .bashrc:

`sudo vim ~/.bashrc`
`export PYTHONPATH=$HOME/Downloads/caffe/python:$PYTHONPATH`
`source ~/.bashrc'

14] Готово.

...