Jump to content
Compvision.ru
Sign in to follow this  
mrgloom

caffe на windows

Recommended Posts

Попробовал сборку через

https://github.com/willyd/caffe-builder

 

Небольшой отчёт:
 

Цитата

 

Windows 10 x64

git shell
cd C:\Users\user\Downloads\Caffe_win_x64
git clone https://github.com/willyd/caffe-builder.git caffe-builder

CMake 3.1.3
Visual Studio 10 2010 Win64

Первая проблема :

Could NOT find Git (missing:  GIT_EXECUTABLE)
CMake Error at cmake/buildem_download_package.cmake:98 (message):
  Could not find Git please add a cache variable GIT_EXECUTABLE pointing to
  your git executable.
Call Stack (most recent call first):
  cmake/packages/gflags.cmake:5 (buildem_download_package)
  CMakeLists.txt:20 (include)
 
Решение :

http://www.chambaud.com/2013/07/08/adding-git-to-path-when-using-github-for-windows/

я добавлял только git.exe

CMake -> Delete chache не помогло?
Перезапуск CMake помог ?

 

Далее собираю проект в Release через VS 2010  и тут уже пошли ошибки.

1. boost

Error    12    error C1189: #error :  "Not SPARC"    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\libs\config\checks\architecture\sparc.cpp    Boost

Error    11    error C1189: #error :  "Not PPC"    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\libs\config\checks\architecture\power.cpp    Boost

Error    10    error C1189: #error :  "Not MIPS1"    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\libs\config\checks\architecture\mips1.cpp    Boost

Error    9    error C1189: #error :  "Not ARM"    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\libs\config\checks\architecture\arm.cpp    Boost

Error    13    error C1083: Cannot open include file: 'unicode/uversion.h': No such file or directory    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\libs\regex\build\has_icu_test.cpp    Boost

тут пишут что можно заигнорить

Цитата

 

When Caffe-Builder builds boost it may output errors to the Error List Window in Visual Studio. You can safely ignore the following errors:

  • Error 334 error C1189: #error : "Not SPARC"
  • Error 333 error C1189: #error : "Not PPC"
  • Error 332 error C1189: #error : "Not MIPS1"
  • Error 331 error C1189: #error : "Not ARM"
  • Error 335 error C1083: Cannot open include file: 'unicode/uversion.h': No such file or directory

 

  •  

2. lmdb

Error    1    error C1083: Cannot open include file: 'inttypes.h': No such file or directory [C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\lmdb-prefix\src\lmdb-build\lmdb.vcxproj]    C:\Users\user\Downloads\DownloadCache\lmdb\libraries\liblmdb\mdb.c    lmdb

Error    8    error C1083: Cannot open include file: 'inttypes.h': No such file or directory [C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\lmdb-prefix\src\lmdb-build\lmdb.vcxproj]    C:\Users\user\Downloads\DownloadCache\lmdb\libraries\liblmdb\mdb.c    lmdb

http://stackoverflow.com/questions/22457126/unable-to-open-include-file-inttypes-h-in-borland-c-builder
http://stackoverflow.com/questions/13266868/ffmpeg-inttypes-h-not-found-error


3. leveldb

Error    560    error C1083: Cannot open include file: 'atomic': No such file or directory [C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\leveldb-prefix\src\leveldb-build\leveldb.vcxproj]    C:\Users\user\Downloads\DownloadCache\leveldb\util\env_boost.cc    leveldb

Error    568    error C1083: Cannot open include file: 'atomic': No such file or directory [C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\leveldb-prefix\src\leveldb-build\leveldb.vcxproj]    C:\Users\user\Downloads\DownloadCache\leveldb\util\env_boost.cc    leveldb


http://stackoverflow.com/questions/18367147/cannot-open-include-file-thread

4. caffe

Error    2255    error : namespace "std" has no member "isnan" [C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\Caffe-prefix\src\Caffe-build\src\caffe\caffe.vcxproj]    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\DownloadCache\caffe\include\caffe\common.hpp    96    1    Caffe

Error    2389    error : namespace "std" has no member "isnan" [C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\Caffe-prefix\src\Caffe-build\src\caffe\caffe.vcxproj]    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\DownloadCache\caffe\include\caffe\common.hpp    96    1    Caffe

Error    2256    error : namespace "std" has no member "isinf" [C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\Caffe-prefix\src\Caffe-build\src\caffe\caffe.vcxproj]    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\DownloadCache\caffe\include\caffe\common.hpp    97    1    Caffe

Error    2390    error : namespace "std" has no member "isinf" [C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\Caffe-prefix\src\Caffe-build\src\caffe\caffe.vcxproj]    C:\Users\user\Downloads\Caffe_win_x64\caffe-builder\build\DownloadCache\caffe\include\caffe\common.hpp    97    1    Caffe

http://stackoverflow.com/questions/2249110/how-do-i-make-a-portable-isnan-isinf-function

вот даже об этом пост

http://christophlassner.de/collection-of-msvc-gcc-compatibility-tricks.html

 

Вообщем резюме компилятор VS2010 поддерживает не всё из C++11 и я забил и взял VS2013.

В итоге VS2013 собрал без проблем, но я собирал на машине с ATI видеокартой и собрал без GPU, потом на той же машине скачал CUDA Toolkit и собрал уже с GPU.

 

Проблемы и вопросы:

1. По всей видимости CMake скрипт использует не master caffe версию а скачивает отсюда https://github.com/willyd/caffe

и видимо потому что ветка не свежая не работаеют многие примеры из https://github.com/BVLC/caffe/tree/master/examples/mnist

2. У меня почему то не работает caffe.exe device_query.

3. Опять работает только 1 ядро в CPU mode надо попробовать пересобрать OpenBLAS

4. VS2013 собирает очень долго на 1 ядре, возможно можно распараллелить процесс компиляции.

5. Пoддержка CuDNN как узнать что она есть? и как включить?

6. Нету wrapper'ов для Python, Matlab можно ли их дособрать?

 

 

Share this post


Link to post
Share on other sites
1 hour ago, mrgloom said:

5. Пoддержка CuDNN как узнать что она есть? и как включить?

Вы вше пишите, что у вас карта ATI...то Radeon которые? Ну тогда нет поддержки cuDNN.

А вообще там для cuDNN нужно выставлять флаг USE_CUDNN, CUDNN_INCLUDE и CUDNN_LIBRARY, автоматического find_package'а вроде бы не прописано в билд скрипте.

Share this post


Link to post
Share on other sites

Я собирал на одном компе, а тестировал уже на компе с GeForce GTX 460.

Впрочем похоже работает только с lenet_solver.prototxt (10 мин) и mnist_autoencoder_solver.prototxt (25 мин)

 

Цитата

А вообще там для cuDNN нужно выставлять флаг USE_CUDNN, CUDNN_INCLUDE и CUDNN_LIBRARY, автоматического find_package'а вроде бы не прописано в билд скрипте.

Там это где?

Share this post


Link to post
Share on other sites

mrgloom, а как вы собрали example?

После команды cmake --build <path> необходимо в студии открыть ALL_BUILD.vcxproj ?

Share this post


Link to post
Share on other sites

Может MKL лучше? По community лицензии он к тому же бесплатный.

Share this post


Link to post
Share on other sites
1 час назад, mrgloom said:

Я делал через CMake GUI и потом открыл главный *.sln через vs2013.

 

Кстати есть у кого то соображения насчёт OpenBlas под винду?

https://github.com/willyd/caffe-builder/issues/23

https://github.com/xianyi/OpenBLAS/issues/776

Я собрал через командную строку. В конце выдало около 600 предупреждений и 4 ошибки, на которые автор просит закрыть глаза.  Главный *.sln  - имеется ввиду caffe-builder.sln?

Потому, как VS при нажатии F5 выдает бяку типа:

 

11>  -- NVIDIA CUDA:
11>  --   Target GPU(s)     :   Auto
11>  --   GPU arch(s)       :   sm_30
11>  --   cuDNN             :   Not found
11>  -- 
11>  -- Install:
11>  --   Install path      :   C:/programm/caffe-builder-master/make/install
11>  -- 
11>CUSTOMBUILD : CMake error : The following variables are used in this project, but they are set to NOTFOUND.
11>  Please set them or make sure they are set and tested correctly in the CMake files:
11>  CUDA_cublas_LIBRARY (ADVANCED)
11>      linked by target "caffe" in directory C:/programm/caffe-builder-master/make/DownloadCache/caffe/src/caffe
11>  CUDA_curand_LIBRARY (ADVANCED)
11>      linked by target "caffe" in directory C:/programm/caffe-builder-master/make/DownloadCache/caffe/src/caffe
11>  -- Configuring incomplete, errors occurred!
11>  See also "C:/programm/caffe-builder-master/make/Caffe-prefix/src/Caffe-build/CMakeFiles/CMakeOutput.log".
11>  See also "C:/programm/caffe-builder-master/make/Caffe-prefix/src/Caffe-build/CMakeFiles/CMakeError.log".
11>  
12>------ Skipped Build: Project: ALL_BUILD, Configuration: Debug Win32 ------
12>Project not selected to build for this solution configuration 
========== Build: 10 succeeded, 1 failed, 2 up-to-date, 1 skipped ==========

 

Share this post


Link to post
Share on other sites

caffe-builder.sln

Цитата

Alternatively you can build the caffe-builder.sln by opening it in Visual Studio.

По поводу cublas и curand, есть предположение, что у вас не стоит CUDA Toolkit и поэтому VS не может найти либы.

 

Еще

Debug Win32

выглядит подозрительно, попробуйте Release x64.

 

Share this post


Link to post
Share on other sites

Решил попробовать пересобрать OpenBLAS через MinGW

скачал mingw-get-setup.exe и добавил в PATH C:\MinGW\bin и C:\MinGW\msys\1.0\bin

поставил : mingw32-base, mingw32-gcc-fortran, mingw32-gcc-g++, msys-base, mingw32-pthreads-w32.

доставил : MSYS->MinGW Developer Toolkit->msys-perl (bin)

скачал через git clone https://github.com/xianyi/OpenBLAS.git

собрал make FC=gfortran NO_AFFINITY=1 USE_OPENMP=1

подменил libopenblas.dll около бинарника caffe.exe и словил краш, может либа x32 собралась? или они просто не совместимы?

так и не нашел такого же установщика для mingw x64 и нужен ли он? может x32 тоже умеет собирать x64?

 

 

 

Share this post


Link to post
Share on other sites

В итоге скачал prebuild binaries для mingw x64

x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb

msys+7za+wget+svn+git+mercurial+cvs-rev13

прописал bin папки в PATH

C:\Users\user\Downloads\mingw\msys+7za+wget+svn+git+mercurial+cvs-rev13\msys\bin

C:\Users\user\Downloads\mingw\x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb\mingw64\bin

пересобрал

make clean

make FC=gfortran NO_AFFINITY=1 USE_OPENMP=1 -j4

в итоге заработало, но загрузка всё равно примерно 60% на MNIST.

По времени на Core i5 M 430

обычный скачанный openblas 18:49:13.480345 19:11:26.640041 ~22 min

openblas openmp собранный под конкретный процессор 19:26:32.360903 19:52:05.615049 ~25.5 min

 

 

Share this post


Link to post
Share on other sites

тоже пытаюсь запустить caffe под Windows (8.1).

caffe собрал - пытаюсь запустить тестовый пример с рыжим котом: python python/classify.py --print_results examples/images/cat.jpg foo

выдаёт ошибку: 

Traceback (most recent call last):
  File "python/classify.py", line 14, in <module>
    import caffe
  File "c:\caffe-master\python\caffe\__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropS
olver, AdaDeltaSolver, AdamSolver
  File "c:\caffe-master\python\caffe\pycaffe.py", line 13, in <module>
    from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \
ImportError: No module named _caffe

Как устанавливал и что делал:

1) Скачал caffe-master (в корень диска С)

2) в CommonSettings.props поставил настройки работы без CUDN, и работу с питоном (матлаб не включал):

<CpuOnlyBuild>true</CpuOnlyBuild>
 <UseCuDNN>false</UseCuDNN>

<PythonSupport>true</PythonSupport>

<PythonDir>C:\Miniconda2\</PythonDir>

3) Далее дейстовал по инструкции https://github.com/Microsoft/caffe  :

- Установил Miniconda 2.7 64-bit (во время установки прописал пути через инсталятор)

- выполнил следующие строки:

conda install --yes numpy scipy matplotlib scikit-image pip

pip install protobuf

4) Дальше через Visual Studio 2013 запустил проект и собрал его (по видео где за 5 мин устанавливают caffe). Собралось все 16 проектов, ничего не пропущено, ошибок нет.

5) В переменных среды создал переменную PythonPath (её там не было) и прописал путь C:\caffe-master\Build\x64\Release\pycaffe

6) добавил в переменную среды Path пути: C:\caffe-master\Build\x64\Release\pycaffe\caffe и ещё добавил C:\caffe-master; (пути для миниконды там есть)

 

и вот когда пытаюсь запустить этот пример с котом - выдаёт такую ошибку((

пытался разобраться в чём тут дело. В файле python/classify.py ругается, кажется, на 14 строку (import caffe). Попытался выполнить эту команду в самом питоне. Стал ругаться на неустановленные модули. Сначала на numpy (хотя я его устанавливал). Ну я еще раз выполнил pip install numpy.

Потом он начал ругаться на scikit-image. Попытался сделать pip install scikit-image - не прошло - вылезла ошибка про необходимость компилятора Visual C++ 9.0. Порылся в сети нашел его - https://www.microsoft.com/en-us/download/details.aspx?id=44266. Установил. Тоже самое (ну тут я возможно его не настроил - я, честно говоря, в деле работы с питоном не разбираюсь - первый раз столкнулся с этим зверем). Нашёл вариант установки из файлов *.whl (http://www.lfd.uci.edu/~gohlke/pythonlibs/) - ну как я понял, это альтернативный вариант установки. Нашёл нужный для моей системы вариант Scikit-image. выполнил pip install c:\my_file.whl - установка прошла!. Дальше при попытке выполнить import caffe ругался последовательно на несколько модулей (numpy+mkl, scipy) установил и их таким же макаром из whl. После этого команда import caffe прошла без ошибок. Но всё равно коты не запускаются. Решил проверить - установлен ли этот модуль командой  help('modules'). Показывает, что caffe есть.

Подчеркну, на всякий случай, модуль называется caffe, а не _caffe (с подчеркиванием), хотя в "c:\caffe-master\python\caffe\pycaffe.py" 13 строка начинается с "from ._caffe import Net,".

Пытался скопировать \Build\x64\Release\pycaffe\caffe в C:\Miniconda2\lib\site-packages - не помогло. Рылся на англоязычных форумах, где про этуже ошибку упоминают, не помогло(

 

Камрады, помогите разобраться с этими грёбаными котами!!! 4-й день сижу с этой проблемой - сил уже больше нету(

 

Share this post


Link to post
Share on other sites

@cfif 

У меня PythonPath указывает на:

 f:\Documents\Visual Studio 2015\Projects\caffe\build\install\python 

Дерево файлов в аттаче.

Надеюсь Вы построили проект Install ?

tree.txt

ЗЫ: я использую WingIDE и она почему-то не видит переменную PythonPath, пришлось прописать в переменных этой IDE. Хотя из командной строки все работает.

Share this post


Link to post
Share on other sites

спасибо большое, что откликнулись))

у меня дерево отличается очень сильно (прикрепил файл с деревом)

запускаю через командную строку (cmd -  и там уже всё пишу)

немного не понял про проект install - я открыл файл caffe.sln и выполнил пункт build solution. После этого появилась папка affe-master\Build\x64\Release. Вот с ней и работаю.

Я в этом деле новичёк, прошу прощения за такое объяснение. Visual Studio, python, caffe - про это всё узнал неделю назад))

 

FileTree.txt

Share this post


Link to post
Share on other sites

Лучше построить CMAKE-ом как показано в видео ScreenCaptureProject3.mkv

Думал создать новый проект (build2), но уж больно лень все пути перебивать :) 

Путь установки задается здесь:

Скриншот 2017-02-25 15.24.50.png

 

Share this post


Link to post
Share on other sites

попробовал разобраться с этим вопросом.

скачал Cmake 3.8.0

сделал папку для нового билда - build2

настроил путь на source code

При конфигурации указал компилятором Visual Studio 12 2013 win64. Получилось вот что. по-моему что-то тут не то( Кстати, в папке cmake у меня нет файла WindowsCreateLinkHeader.cmake.

А вы откуда качали свой вариант cmake для windows? может я тоже такойже скачаю?

cmake_01.jpg

Share this post


Link to post
Share on other sites

Да нет, все верно, просто пути к Boost надо указать, см. видео.

Поставьте галку Advanced сверху и задайте пути вручную.

Исходники качал отсюда: https://github.com/BVLC/caffe/tree/windows стандартная репа, ветка windows.

Share this post


Link to post
Share on other sites

скачал вашу версию - с ней получилось сделать как на видео. Параметры немного отличались, но всё сработало. Потом запустил полученный файл проекта в Visual Studio. Выполнил build solution, а затем buid install. Всё получилось. Исправил путь к PythonPath на новый.

Спасибо вам огромное!!!

Настал главный момент - хочу таки с котами разобраться. Этот пример на многих сайтах встречается.

в командной строке выполняю: python python/classify.py --print_results examples/images/cat.jpg foo

Начал ругаться на --print_results - дескать нет такого параметра. Погуглил - действительно, нужно самому дописать это дело. Инфу взял отсюда: http://stackoverflow.com/questions/37265197/classify-py-is-not-taking-argument-print-results

Добавил код, который там нужен был.

Выдал ошибку

/*****************************************************

c:\caffe-windows>python python/classify.py --print_results examples/images/cat.j
pg foo
CPU mode
WARNING: Logging before InitGoogleLogging() is written to STDERR
W0226 01:06:20.146100 12316 _caffe.cpp:172] DEPRECATION WARNING - deprecated use
 of Python interface
W0226 01:06:20.146100 12316 _caffe.cpp:173] Use this instead (with the named "we
ights" parameter):
W0226 01:06:20.146100 12316 _caffe.cpp:175] Net('python\../models/bvlc_reference
_caffenet/deploy.prototxt', 1, weights='python\../models/bvlc_reference_caffenet
/bvlc_reference_caffenet.caffemodel')
Traceback (most recent call last):
  File "python/classify.py", line 164, in <module>
    main(sys.argv)
  File "python/classify.py", line 115, in main
    channel_swap=channel_swap)
  File "c:\caffe-windows\python\caffe\classifier.py", line 26, in __init__
    caffe.Net.__init__(self, model_file, pretrained_file, caffe.TEST)
RuntimeError: Could not open file python\../models/bvlc_reference_caffenet/bvlc_
reference_caffenet.caffemodel

/*****************************************************

В последней строке написано, что не может найти bvlc_reference_caffenet.caffemodel

я её нашел по адресу: https://github.com/BVLC/caffe/tree/master/models/bvlc_reference_caffenet

запихнул в папку models/bvlc_reference_caffenet

запустил - выдал длинющую партянку и в конце ошибку((((((

эту ошибку я уже не осилил(

код всего этого безобразия в файле прикрепил.

ну я так понял, что это уже не к питону и работе caffe относится - а к конкретной модели. там что-то не фурычит.

а вы пробовали у себя запустить этот пример с котом? он у вас работает?

error_01.txt

Share this post


Link to post
Share on other sites

Да все вроде нормально, только усредненное изображение (mean image) неправильного формата, его вычитают из входного так что они должны совпадать по всем трем измерениям.

Должно быть такое же как и входное изображение, и все точно такое же, как входной слой сетки.

Если что то не совпадает, будет падать.

А эта портянка, всего-то протокол инициализации сети. 

Пример может и запускал, но сейчас не помню, наверное работало, раз не запомнилось :)

 

Да, и у вас судя по всему, GPU не используется.

"CPU mode"

Не включили в caffe, или не инициализировали в питоне ?

 

PS: Упс, а у вас 

Top shape: 10 3 227 227 

это значит пакет из 10 трехканальных изображений. 

Замените 10 на 1, может помочь.

Share this post


Link to post
Share on other sites

у меня комп старинный, даже видеокарта встроенная))) так что никакого GPU нету - я его отключил)

У меня всё заработало!!! нашёл видео, где рассказывается про установку caffe на ubuntu - там он как раз пробует запустить этот пример и исправляет ошибки, которые вылазят. там и моя ошибка тоже была. нужно было еще кое-какие исправления добавить в файл classify.py и io.py.

http://sanghosuh.tistory.com/entry/Install-Caffe-on-Ubuntu

 

Вам ещё раз огромное спасибо!!!))) настроить caffe получилось по вашей инструкции

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×