网站建设吉金手指排名14,房产信息网预告是什么意思,企业可以做哪些网站有哪些内容吗,产品列表型网站模板下面开始正题#xff0c;caffe的安装过程。因为出问题很多#xff0c;所以实际上我是尝试了python2和python3两种python的接口。下面一并放出来。1.安装build-essentialsudo apt-get installbuild-essential这个是一些基本的库#xff0c;具体包括哪些#xff0c;安装前确认…下面开始正题caffe的安装过程。因为出问题很多所以实际上我是尝试了python2和python3两种python的接口。下面一并放出来。1.安装build-essentialsudo apt-get installbuild-essential这个是一些基本的库具体包括哪些安装前确认时会显示印象中有gcc等等。2. boost安装caffe官网给出的是sudo apt-get install--no-install-recommends libboost-all-dev我不知道他特意加个--no-install-recommends干啥。另外在installation主页上标明了Boost1.55但是如果用上面那条命令的话默认装上的是1.54。我现在还不能完全确定1.54是不是不行但是为了保险起见请使用sudo apt-get install libboost1.55-all-dev关于boost在makefile.config中的配置这是个坑下面详细讲讲。2.1. python2/Anaconda2对于python2只要执行完上面的安装就可以了makefile中的配置项无需做特别设置。2.2. python3/Anaconda3对于python3boost安装方面没啥要留意的。需要特别注意的是makefile.config中有一行# Uncomment to use Python 3 (default isPython2)PYTHON_LIBRARIES : boost_python-py34python3.5m这一项很有迷惑性而且我也迷糊了很久因为相关有一项是PYTHON_LIB一开始我以为是相同的重复项。但是如果这句staycomment的话makecaffe和pycaffe都能成功通过但是使用时却会报错ImportError:/home/zero/Documents/caffe-master/python/caffe/_caffe.so:undefinedsymbol:_ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE这个错误的意思是boost版本不匹配。boost.python是啥东西呢我理解的是boost.python是一个类似翻译器的东西所以如果你是python3的程序却用了python2的翻译器那语法、定义等等各方面必然会有冲突。我记得在某篇帖子中看到过str、int等等的定义在两者中是不同的所以有时会有报错信息说找不到str啦int啦之类。当时没有把没一个错误都记下来。然后如果我们去makefile中查找这个变量PYTHON_LIBRARIES会发现有这么一句PYTHON_LIBRARIES ? boost_python python2.7这句的意思是说如果不出意外使用的是2版本的python和boost.python。但是这里有个问题如果把makefile.config里面那句uncomment原来默认的是PYTHON_LIBRARIES:boost_python3 python3.5m直接去掉的话会报错说找不到-lboost_python3。这里我无法解释原理但是去/usr/lib/x86_64-linux-gnu/文件夹下面去找找你会找到属于python3的boost版本可能是33也可能是34。确定后把makefile中的名称换成相应名称就可以了。3.5m的我不了解为何要加m。修改后应该是PYTHON_LIBRARIES : boost_python-py34python3.5m3. protobuf安装protobuf官方产品默认是不支持python3的所以通过默认的apt-get命令安装的libprotobuf和protobufcomplier仅适用于python2系列。而对于python3以前支持python3的是民间组织搞的一个protobuf-py3似乎是基于2.5的一个改货。但是现在下不到了。试过pip3-protobuf当时也不行。但是现在想来我或许是之前装过protobuf2.5没卸载干净的关系如果有兴趣的话倒是可以试试pip3的方式。不过我这里还是建议手动安装。有人在帖子中说protobuf-3.0.0-alpha有问题我试过也确实不行但是当时尝试的环境依然是protobuf2没卸干净所以到底alpha行不行这里说不好不过我确定beta是可以的所以我们直接去下载protobuf-3.0.0-beta-2。注意分别下载cpp和python两个版本的。https://github.com/google/protobuf/releases解压后./configure--prefix/path/protobuf(这里指定的路径可以是任意)makemake checkmake install然后配置路径将protobuf下的lib和include加入makefile.config同时protobuf要加入bashrc里面。export PATH$PATH:/path/protobuf/binexportLD_LIBRARY_PATH$LD_LIBRARY_PATH:/path/protobuf/lib然后protoc–version查看版本是否正确。如果显示的是protoc2.5.0那是有问题的。我曾经执行apt-getinstalllibprotobuf-dev后来又purge卸载但是执行protoc--version后还是能看到2.5.0的信息。如果是默认系统执行命令后会提示没有protobuf所以最好在安装前先查一下。万一有怎么干净的卸载这个我真不清楚。关于系统权限问题这里讲一下系统权限的问题初入手ubuntu很容易迷糊username账户、sudo、su这是三个不同的东西。bashrc配置过的路径仅针对username账户有效怎么样能够全局有效理论是是修改/etc/profile但是实际测试过不太好用。sudo的权限是不同于su账户的所以下一步安装python依赖我宁愿用su也不要用sudo。理论上修改sudo的配置文件/etc/sudoers就能够达到不清除用户账户环境配置的效果但是实测无效。然后是pip系统关联anaconda3之后默认pip是anaconda的pip但是如果你执行sudopip的话执行的是系统默认python2的pip这些地方一定要注意。所以后面很多路径配置后执行sudo命令会提示找不到这个那个原因是在做环境变量配置时仅针对当前用户做了配置。另外有网优提到过在caffemake的时候不要用sudo不然后面会把部分文件加入权限限制导致在makepycaffe的时候出问题。解压protobuf的Python版本进入目录后cd Documents/pyprotobuf/protobuf-3.0.0-beta-2/pythonpython setup.py buildpython setup.py testpython setup.py install最后一步需要sudo或者su权限。我们还是把su也配置好anaconda然后进入su账户执行安装。这里一定要注意python的版本问题如果装了anaconda3那么username账户下面python进去后是3.5.1这时一定要注意测试下su账户下python进去后是什么如果不修改bashrc那么进去后是2.7.6。可以直接从username下的bashrc中把anaconda的路径配置copy过去。安装完python的protobuf后进入python进行测试Import google.protobuffrom google.protobuf.internalimportenum_type_wrapper3. hdf5python2/3下照常安装就好应该没什么太大问题。sudo apt-get install libhdf5-serial-devanaconda自己自带hdf5不需要安装但是需要注意配置。在makefileconfig中要把anaconda的lib和include加入路径配置当中所以在make的时候会依照该配置寻找anaconda中的动态链接库文件libhdf5.so.10但是系统找不到怎么办呢这里有两种解决办法。一种是在bashrc中加入anaconda的lib路径LD_LIBRARY_PATHhome/zero/anaconda3/lib:$LD_LIBRARY_PATHexportLD_LIBRARY_PATH但是这样会引发别的问题make时opencv方面会报错undefined referencetoTIFFRGBAImageOKLIBTIFF_4.0按照晋倪的文章这就需要手动安装opencv并在配置时设置加上-DBUILD_TIFFON但是我嫌麻烦所以开辟新路径。第二种方式就是对hdf本身动手脚一种办法是在/usr/lib/x86_64-linux-gnu文件夹下面找看有libhdf5.so.x几就把它链接为10然后make时就找到啦。比如sudo ln -s libhdf5.so.7 libhdf5.so.10但是这不就是狸猫换太子有网友说照着这个做报错说libhdf5版本不对。所以可能9换7可以10换8就不行。然后有个哥们比较逗的是直接把so文件复制到/usr/lib/x86_64-linux-gnu文件夹下面我试了下sudo cplibhdf5_hl.so.10/usr/lib/x86_64-linux-gnu/sudo cp libhdf5.so.10/usr/lib/x86_64-linux-gnu/然后似乎是可以的。4. opencvpython2的我直接就禁用opencv了所以有兴趣可以自己试试看。当时也是报错undefined referencetoTIFFRGBAImageOKLIBTIFF_4.0可能对于python2/3真的要手动安装。对于anaconda直接照常安装就行了。sudo apt-get install libopencv-dev5.其他sudo apt-get installlibleveldb-devlibsnappy-devsudo apt-get install libatlas-base-devsudo apt-get install libgflags-devlibgoogle-glog-devliblmdb-dev这些似乎都不会出太大问题。6.安装python依赖库anaconda用户可以跳过此步这一步仅针对原生python而言。首先安装一些必备的编译器sudo apt-get install gcc-gfortran.x86_64sudo apt-get install gfortran然后安装pip(针对python2)sudo apt-get install python-pip或者(针对python3)sudo apt-get install python3-pip使用的时候是pip或者pip3分别针对两个版本的python。然后执行caffe的python下面的requirements.txt中的模块安装。官网给出的命令for req in $(catrequirements.txt); do pip install$req; done执行此命令需要su权限你可以先进入su账户如果不用su而用sudo的话则命令改为for req in $(cat requirements.txt); do sudopip3 install$req; done不过网上还是看到有人说不要用他的文档自己一个一个装比较好。确实在安装过程中会有不能完全安装而留意不到的情况所以最好手动安装没装完一个看返回信息是否是安装成功。例如sudo pip3 installpython-gflags2.0需要选择版本的话记得加引号。7.安装caffe及配置makefile文件先下载Caffe。github上下载好caffe库https://github.com/BVLC/caffe复制到ubuntu下解压。然后按照官网说法修改configcd /home/zero/Documents/caffe-mastercp Makefile.config.example Makefile.config直接用gedit打开CPU_ONLY : 1#这句要去掉comment。因为我们只用cpu# USE_OPENCV : 0#不用opencv的话也可以去掉不过最好留着吧。我是在python2下面实在懒才去掉的。PYTHON_INCLUDE : /usr/include/python2.7 \/usr/lib/python2.7/dist-packages/numpy/core/include这两句如果是要用python3或者anaconda一概去掉如果是原生python2.7下面的要改为/usr/local/lib/python2.7/dist-packages/numpy/core/includeANACONDA_HOME : /home/zero/anaconda3PYTHON_INCLUDE : $(ANACONDA_HOME)/include\$(ANACONDA_HOME)/include/python3.5m\$(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include\注意是anaconda3或者anaconda2带了数字的PYTHON_LIBRARIES : boost_python-py34python3.5m这句前面讲过boost版本的问题。# PYTHON_LIB : /usr/libPYTHON_LIB : $(ANACONDA_HOME)/lib默认就用上面的anaconda就用下面的。INCLUDE_DIRS : $(PYTHON_INCLUDE)/usr/local/include/usr/local/protobuf/includeLIBRARY_DIRS : $(PYTHON_LIB)/usr/local/lib /usr/lib/usr/local/protobuf/lib注意后面手动添加protobuf的库。8. make在caffe根目录下makemake testmake runtestmake pycaffemake pytest如果测试都通过那就没问题了。注意配置文件里面有一个WITH_PYTHON_LAYER : 1如果这句的注释去掉就不能pytest了。记得googlegroup上有人这么说过。9.配置环境变量export PATH$PATH:/usr/local/protobuf/binexportLD_LIBRARY_PATH$LD_LIBRARY_PATH:/usr/local/protobuf/lib这两句是配置protobuf的手动安装3beta2之后要添加这两句不然系统找不到你安装的protobuf。如果是2系列的不需要执行这一步。# added by Anaconda34.0.0installerexportPATH/home/zero/anaconda3/bin:$PATH上面这个是安装anaconda3的时候自动添加的如果在问你要不要添加时你直接回车no了那回头自己添上这一句。否则python进去的还是系统自带的python2。前面提到过晋倪的文章中说建议LD_LIBRARY_PATHhome/zero/anaconda3/lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH说如果不加就会进不去系统。我没遇到进不去系统的情况。反而是加了这两句会导致opencv的报错。exportPYTHONPATH/home/zero/Documents/caffe-master/python:$PYTHONPATH最后这句是caffe的配置有人居然说可以配置为caffe/build/python严重误导了我……10.验证最后还是需要仔细验证一下不然可能空欢喜一场python进去后import caffe如果不报错也别急着高兴from caffe import layers as L如果这句也不报错那应该是不会有问题了。万一第一句成功了结果第二句没成功可能是路径配错了用dir(caffe)看看caffe都有些啥。我第一次海市蜃楼的时候只有[__doc__, __loader__, __name__,__package__,__path__, __spec__]。说明是有问题的。最后虽然自己极尽所能想要做到没有遗漏但是由于caffe安装过程本身重复了太多次每次错误都不同我没有时间一一记录和呈现。万一有所疏漏请及时指出。关于参考资料看了太多的博文没办法一一列出而且根本系统、环境的不同操作方法也有太多的不一样。这里要感谢googleuser group上面的两位网友针对我的问题他们直接给出了很好的建议。