人工智能-基于ubuntu1的CPU(GPU)版本深度学习框架Caffe安装
ccwgpt 2024-10-03 18:19 26 浏览 0 评论
深度学习这么火,对于有幸从事机器学习的我而言激动不已,无奈caffe安装较为繁琐,加之硬件条件的限制,使得自己不得不对其望而却步。不过google的一款深度学习框架tensorflow安装较为简单,在Windows下之间pip install tensorflow即可完成安装,然后在eclipse中进行基于tensorflow的开发了。本人先从简单的开始,先在windows下安装tensorflow并进行学习,用其做了几个VGG、CNN、验证码识别等几个简单例子后,对其差不多已经了解,故而这几天想转战caffe。
本人选择使用ubuntu14.04,因为其稳定,而且遇到错误在网上的解答也比较多,整个安装过程不到一天时间(安装很简单,主要是安装或者编译过程花的时间比较长),也没有遇到什么大的错误,整体而言很顺利,主要是参考了http://www.th7.cn/system/lin/201605/165973.shtml这篇博客。写的比较详细,不过其部分代码一步到位,会导致出错,本人根据安装经验重新进行整理,部分安装步骤根据该博客来的,只是对出错的地方进行了修改。希望帮助大家早日安装好。
1、安装vm虚拟机,ubuntu的安装镜像地址共享给大家http://pan.baidu.com/s/1jIBjPuY ,安装完后首先确保虚拟机可以上网!!!
2、打开终端安装必要的环境,依次执行如下命令:
sudo apt-get update #更新软件列表 sudo apt-get upgrade #更新软件 sudo apt-get install build-essential
3、去英伟达官网下载,网址如下:https://developer.nvidia.com/cuda-downloads
(不要在Windows下载后在复制到虚拟机,直接在虚拟机打开网页后收入网址进行下载)
4、下载完后,进入下载目录执行:
sudo sh cuda_7.5.18_linux.run#(cuda_7.5.18_linux.run是下载的文件名)
5、第四步的安装过程比较长,安装过程会显示最终用户许可协议(EULA),很长,可以按‘q’退出阅读,然后安装的时候不要安装显卡驱动,具体如下:
6、安装完后进行执行:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/lib' >> ~/.bashrc source ~/.bashrc
7、安装相关库:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml sudo easy_install pillow 或者 pip3 install pillow
8、下载caffe
cd ~ #进入主目录 git clone https://github.com/BVLC/caffe.git
然后在当前目录下就会看到下载的caffe,通过ls命令查看。
9、安装python支持(该过程持续时间很长,我安装的时候参考的博客把第三和第四行代码合并为一行,执行执行会出错。大家按照我的一行一行代码执行就行)
cd caffe cat python/requirements.txt | xargs -L 1 sudo pip install sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7 sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy
10、修改Makefile.config
cp Makefile.config.example Makefile.config
然后用vi或者其他编辑器修改Makefile.config文件,找到 # CPU_ONLY: = 1这一行,把这一行前面的注释 。然后在找到PYTHON_INCLUDE,把原来的/usr/lib/python2.7/dist-packages/numpy/core/include改为/usr/local/lib/python2.7/dist-packages/numpy/core/include即可。
GPU版本:
USE_CUDNN := 1
USE_OPENCV := 1
USE_LMDB := 1
USE_HDF5 := 1
CPU版本:
CPU_ONLY := 1
最后设置cv2:
OPENCV_VERSION := 3 (我是3.3版本,所以写3,如果是2.x版本则写2即可)
如果使用编译的cv2则如下打开注释
USE_PKG_CONFIG := 1
使用python接口:
WITH_PYTHON_LAYER := 1
11、编译caffe(编译时间相对比较长,一行一行执行就好,我在编译的时候出错,如果出错,执行make clean,然后在从头开始重新编译)
make all -j2 #2代表启用2各线程同时编译 make test make runtest make pycaffe make distribute
如果编译过程报错:AR -o .build_release/lib/libcaffe.aLD -o .build_release/lib/libcaffe.so.1.0.0/usr/bin/ld:
cannot find -lhdf5_hl/usr/bin/ld: cannot find -lhdf5collect2: error: ld returned 1 exit statusMakefile:572:
recipe for target '.build_release/lib/libcaffe.so.1.0.0' failedmake: *** [.build_release/lib/libcaffe.so.1.0.0]
Error 1
则:然后修改Makefile 文件(注意不是Makefile.config) 将里面的
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
Makefile文件修改
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 替换为: NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
修改Makefile.config文件
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
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中将.build_release/tools/extract_features.bin or build_release/tools/convert_imageset.bin error
LIBRARIES += boost_thread stdc++
修改:
LIBRARIES += boost_thread stdc++ boost_regex
or
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
在最后hdl5后面添加opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs boost_regex即可
在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:504: recipe for target 'python/caffe/_caffe.so' failed
make: *** [python/caffe/_caffe.so] Error 1
解决办法:
执行如下命令sudo apt-get install python-numpy,然后再试,如果还是不行就进入python命令行,输入如下:
python
import numpy as np
np.get_include()然后就会看到如下输出:
'/usr/local/lib/python2.7/dist-packages/numpy/core/include',然后打开Makefile.config文件,找到PYTHON_INCLUDE,将/usr/lib/python2.7/dist-packages/numpy/core/include这行代码改成和刚刚命令行输出一样,然后重新编译执行.重新编译前先make clean,然后从头make all -j8开始编译.
这时候cd 到caffe 下的 python 目录,试试caffe 的 python wrapper安装好没有:
python import caffe
如果不报错,那就说明安装好了。
测试:
cd $CAFFE_ROOT ./data/mnist/get_mnist.sh ./examples/mnist/creat_mnist.sh ./examples/mnist/train_lenet.sh
到此安装完成,现在就可以开心的玩深度学习了!!!喜欢的朋友可以点击关注哦
相关推荐
- Java开发中的区块链技术应用:让代码更“链”接未来
-
Java开发中的区块链技术应用:让代码更“链”接未来嘿,各位Java开发者们!今天咱们就来聊聊一个超级热门的话题——区块链技术在Java开发中的应用。可能有些人听到区块链就想到比特币,但其实区块链的应...
- gRPC Java 的开发StepByStep(javarpc原理)
-
一、环境准备1.安装依赖JDK:确保安装Java8或更高版本(推荐Java11+)。构建工具:选择Maven或Gradle(以下示例以Maven为主)。Protobuf编译器:...
- 谷歌发布开源LMEval框架:打破AI模型比较壁垒
-
IT之家5月27日消息,科技媒体TheDecoder昨日(5月26日)发布博文,报道称谷歌推出开源框架LMEval,为大语言模型和多模态模型提供标准化的评测工具。评测新型AI...
- 简约轻量的 VPN 客户端:LightVPN
-
Android自带的VPN需要设定锁屏密码才能启用,显然对于使用滑动或图案解锁的VPN用户来说,这是极为不友好的。为了改善这个情况,@喝雪碧的虾PeterCxy开发出了LightVPN这...
- 如何有效的去除安卓手机软件中的广告
-
【搞科技教程】安卓软件多同时广告也多,时不时的弹出来还一条条的切换,费流量的同时一不小心点到了还跳转了页面,这在玩游戏看视频的时候尤其令人烦躁。小安推荐大家一个轻量,高效的去除广告工具MinMinGu...
- 四款精品安卓软件推荐:让你的手机流畅的不像安卓机
-
目前国产软件的乱象,大部分软件不断后台自启,相互唤醒,这也是为什么安卓手机使用一段时间后就变卡的原因,今天小编为大家带来四款软件,能让你的手机流畅的像刚买时一样。绿色守护休眠进程和省电必备神器,最佳控...
- 生命不息,折腾不止:在 Android 上自制单手模式
-
手机屏幕做大,在视觉体验上带来的提升是非常明显的,但也因为屏幕变大,单手操作已不再那么现实。针对这种情况,各大厂商都相继推出了相应的解决方案,Android阵营比较有代表性的有魅族、锤子的下拉悬停和...
- Windows11安卓增强指南(win11 安卓 效率)
-
在Win11上,让人感受最深的莫过于可以运行安卓格式的APK软件,但是对于更加发烧的玩家来说,安卓系统没有ROOT,就无法实现一些骚操作,那么今天就来看看怎么给Win11的WSA加上ROOT吧。注意:...
- 2025年安卓虚拟机APP推荐TOP5(附下载教程)
-
身为25岁非二元性别的自媒体人,我视频剪辑、内容创作样样精通。多平台运营离不开安卓虚拟机APP。今天,就来聊聊2025年我最爱的5款虚拟机APP,附上教程,助你创作更高效!一、安卓虚拟机APP有什么用...
- 全民风险管理理论之COSO-ERM(全面风险管理的参与者)
-
萨班斯-奥克斯利法案内控体系COSO-ERM,2004八个要素COSO——ERM(2017版)框架五要素20个原则企业的经营目标不是价值最大化风险管理各要素间的关系各级关系全面风险管理与内...
- 透过照片学习摆姿技巧 你能拍出妹子的曲线么?
-
大多数人认为拍妹子都一个套路,但随着社会的发展,人们受到外来文化的影响越来越多,个性的照片也越来越被大家所接受。到底怎样的一幅人像照才是好照片,今天我们就从模特摆姿的方面来谈一谈人像照片中怎样能够完美...
- 手把手教你拍好局部风光!(如何拍好风光片)
-
外出旅行,游历名山大川、江河湖海,日升日落……总能看到绝佳的风景,有时置身于无与伦比的风景中反而容易眼花缭乱、迷失自己。我们不仅要欣赏远处雄浑壮阔的雪山,但是也不要忽略脚下和身边的局部优美风光。下面就...
- C# 从代码入门 Mysql 数据库事务(c#数据库操作实例)
-
目录生成数据库数据Mysql数据库事务基础数据库的并发一致性问题数据库事务的隔离级别BeginTransaction()和TransactionScope的区别BeginTransaction...
- 真香预警!尼康大炮500mm F4 FL E试用心得
-
NicolasStettler是一位来自瑞士的17岁野生动物摄影师,他最近购买了尼康最新一代长焦镜头AF-S尼克尔500mmf/4EFLEDVR,并将其与他的旧镜头进行了比较,以下是他的详细...
- 佳能RF 50mm f1.2L USM 被吹捧还是凭实力?新老对比能否一战?
-
镜头的定位佳能RF50mmf1.2LUSM是佳能EOSR全画幅无反光镜系统的标准定焦镜头RF50mmf1.2LUSM可以看作是之前12年推出的EF50mmf1.2LUSM的继承者。...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)