Ошибка при установке Caffe в Ubuntu 17.04 (libhdf5.so)

Во время установки (компиляции) Caffe (первой версии) на моем Ubuntu 17.04 я получаю следующую ошибку:

*** Нет правила для создания цели '/usr/lib/x86_64-linux-gnu/"libhdf5.so "', необходимого для 'lib / libcaffe.so.1.0.0'. Останавливаться.

введите описание изображения здесь

Технические характеристики моего компьютера следующие:

> nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2016 NVIDIA
> Corporation Built on Tue_Jan
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

LIBRARIES += glog gflags protobuf leveldb snappy \
  lmdb boost_system boost_filesystem hdf5_hl hdf5 m \
  opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs opencv_videoio
13:22:03_CST_2017 Cuda compilation > tools, release 8.0, V8.0.61

Используемый gcc:

There are 4 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path              Priority   Status
------------------------------------------------------------
  0            /usr/bin/gcc-4.9   10        auto mode
  1            /usr/bin/g++-4.9   10        manual mode
* 2            /usr/bin/gcc-4.9   10        manual mode
  3            /usr/bin/gcc-5     10        manual mode
  4            /usr/bin/gcc-6     10        manual mode

Версия OpenCV:

$ pkg-config --modversion opencv
3.2.0

CUDNN - последняя версия v6.0.

Я уже добавил следующее относительно официального сайта:

find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;

cd /usr/lib/x86_64-linux-gnu

sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so

sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

и изменил Makefile.config как:

 USE_CUDNN := 1
 OPENCV_VERSION := 3
 CUDA_DIR := /usr/local/cuda-8.0
 BLAS := atlas
 PYTHON_INCLUDE :=  /usr/include/python2.7 /usr/local/lib/python2.7/dist-packages/numpy/core/include
 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

и Makefile как:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

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

Но по-прежнему возникает та же ошибка после запуска cmake .., make all -j8 или make pycaffe -j4:

CMakeFiles / Makefile2: 267: рецепт для цели 'src / caffe / CMakeFiles / caffe.dir / all' не удалось сделать 2: *** [src / caffe / CMakeFiles / caffe.dir / all] Ошибка 2

CMakeFiles / Makefile2: 1129: рецепт для цели 'python / CMakeFiles / pycaffe.dir / rule' не удалось сделать 1: *** [python / CMakeFiles / pycaffe.dir / rule] Ошибка 2

Makefile: 487: рецепт для цели 'pycaffe' не удалось сделать: *** [pycaffe] Ошибка 2

Вот список связанных пакетов после выполнения:

$ cd /usr/lib/x86_64-linux-gnu

Потом:

$ ls -l | grep hdf5

Результат следующий:

drwxr-xr-x  3 root root      4096 May 17 06:37 hdf5
-rw-r--r--  1 root root    972640 Dec  5 08:27 libhdf5_cpp.a
lrwxrwxrwx  1 root root        22 Dec  5 08:27 libhdf5_cpp.so -> libhdf5_cpp.so.100.0.0
lrwxrwxrwx  1 root root        22 Dec  5 08:27 libhdf5_cpp.so.100 -> libhdf5_cpp.so.100.0.0
-rw-r--r--  1 root root    414392 Dec  5 08:27 libhdf5_cpp.so.100.0.0
-rw-r--r--  1 root root     13098 Dec  5 08:27 libhdf5_hl_cpp.a
lrwxrwxrwx  1 root root        25 Dec  5 08:27 libhdf5_hl_cpp.so -> libhdf5_hl_cpp.so.100.0.0
lrwxrwxrwx  1 root root        25 Dec  5 08:27 libhdf5_hl_cpp.so.100 -> libhdf5_hl_cpp.so.100.0.0
-rw-r--r--  1 root root     14736 Dec  5 08:27 libhdf5_hl_cpp.so.100.0.0
lrwxrwxrwx  1 root root        27 May 21 16:18 libhdf5_hl.so -> libhdf5_serial_hl.so.10.0.2
-rw-r--r--  1 root root   7841328 Dec  5 08:27 libhdf5_serial.a
-rw-r--r--  1 root root    398780 Dec  5 08:27 libhdf5_serial_fortran.a
lrwxrwxrwx  1 root root        33 Dec  5 08:27 libhdf5_serial_fortran.so -> libhdf5_serial_fortran.so.100.0.1
lrwxrwxrwx  1 root root        33 Dec  5 08:27 libhdf5_serial_fortran.so.100 -> libhdf5_serial_fortran.so.100.0.1
-rw-r--r--  1 root root    254920 Dec  5 08:27 libhdf5_serial_fortran.so.100.0.1
-rw-r--r--  1 root root    245528 Dec  5 08:27 libhdf5_serial_hl.a
-rw-r--r--  1 root root    186570 Dec  5 08:27 libhdf5_serialhl_fortran.a
lrwxrwxrwx  1 root root        35 Dec  5 08:27 libhdf5_serialhl_fortran.so -> libhdf5_serialhl_fortran.so.100.0.0
lrwxrwxrwx  1 root root        35 Dec  5 08:27 libhdf5_serialhl_fortran.so.100 -> libhdf5_serialhl_fortran.so.100.0.0
-rw-r--r--  1 root root    121464 Dec  5 08:27 libhdf5_serialhl_fortran.so.100.0.0
lrwxrwxrwx  1 root root        28 Dec  5 08:27 libhdf5_serial_hl.so -> libhdf5_serial_hl.so.100.0.0
lrwxrwxrwx  1 root root        28 Dec  5 08:27 libhdf5_serial_hl.so.100 -> libhdf5_serial_hl.so.100.0.0
-rw-r--r--  1 root root    142744 Dec  5 08:27 libhdf5_serial_hl.so.100.0.0
-rw-r--r--  1 root root      4084 Dec  5 08:27 libhdf5_serial.settings
lrwxrwxrwx  1 root root        25 Dec  5 08:27 libhdf5_serial.so -> libhdf5_serial.so.100.0.1
lrwxrwxrwx  1 root root        25 Dec  5 08:27 libhdf5_serial.so.100 -> libhdf5_serial.so.100.0.1
-rw-r--r--  1 root root   3491952 Dec  5 08:27 libhdf5_serial.so.100.0.1
lrwxrwxrwx  1 root root        24 May 21 16:16 libhdf5.so -> libhdf5_serial.so.10.1.0

Любая помощь очень ценится, так как я борюсь с тем, чтобы не останавливать Caffe в последние несколько дней. Кроме того, я подумывал об установке Caffe2, но мне не удалось установить его.


person Iman    schedule 21.05.2017    source источник
comment
Я думаю, что вы сделали все исправления, о которых я мог подумать .... но для меня у меня была предыдущая проблема, заключающаяся в том, что у меня отсутствовал файл заголовка hd5, он исчез, когда обновил мой каталог include до INCLUDE_DIRS: = $ (PYTHON_INCLUDE) / usr / local / include / usr / include / hdf5 / serial /, тогда у меня возникла та же проблема, что и у вас, и это же исправление переименования символических ссылок сработало для меня   -  person Eliethesaiyan    schedule 22.05.2017
comment
и вы всегда должны делать очистку перед другой сборкой (после применения исправления символической ссылки), в идеале вы всегда должны удалять папку сборки и начинать заново   -  person Eliethesaiyan    schedule 22.05.2017
comment
Да, я это уже сделал. Но по-прежнему получаю ошибку.   -  person Iman    schedule 22.05.2017


Ответы (3)


  1. В качестве общей подсказки по сборке убедитесь, что вы запускаете make all перед make pycaffe.

  2. Официальный сайт подтверждает установку только на Ubuntu 16.04 или 14.10 на эту дату (23 мая 2017 г.).

  3. Убедитесь, что у вас установлена ​​версия 5.1 CUDNN (не последняя 6), так как это единственная рекомендуемая версия (23 мая 2017 г.).

person Mostafa Pakparvar    schedule 24.05.2017
comment
Я устанавливаю Ubuntu 16.X (а не 17.0X), а также CUDNN 5.1, а не последнюю версию v6.0. Итак, сейчас это работает очень хорошо. - person Iman; 24.05.2017

Две следующие строки не всегда необходимы и могут даже вызвать проблемы:

sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

Кроме того, убедитесь, что все hdf5 зависимости уже установлены.

person amirsina torfi    schedule 22.05.2017
comment
Как видно из вопроса, я уже сделал это. Спасибо хоть Амир. - person Iman; 22.05.2017

использовались следующие команды sudo -H pip3 install --upgrade pip или sudo -H pip2 install --upgrade pip и sudo -H apt-get install python-tk или sudo -H apt-get install python3-tk и sudo -H pip3 install easysetup или sudo -H pip2 install easysetup

затем начните снова.

person Farshid PirahanSiah    schedule 24.05.2017
comment
Я так и сделал, но проблема все еще существовала. Спасибо хоть. - person Iman; 24.05.2017