程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

AI模型搭建-3

balukai 2025-01-10 11:34:23 文章精选 6 ℃

三4-5,编译caffe

cd

cd caffe #切换到caffe根目录

cp Makefile.config.example Makefile.config #复制编译文件

vi Makefile.config #编辑Makefile.config文件

在打开的Makefile.config文件中做如下修改;

三4-5-a,将#USE_CUDNN := 1取消注释;

USE_NCCL := 1 #如果有多个GPU,取消对这一行的注释。可以启用Caffe所需的NCCL

三4-5-b,INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include空格后然后添加/usr/include/hdf5/serial /usr/local/cuda-8.0/include/(添加cuda的include路径,按照自己的实际路径添加)

三4-5-c,LIBRARY_DIRS:=$(PYTHON_LIB)/usr/local/lib /usr/lib空格后添加/usr/local/cuda-8.0/lib64 /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial(添加cuda的lib路径,因软件的安装位置区别,按照自己的实际路径添加)

因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改以上两个的路径.

我这次的实际路径如下图:

注意,vi编辑器中,可用查找功能,在命令行模式下输入/xxx 回车(xxx为要查找的内容)按字母n 为查找下一个相同内容

三4-5-d,将CUDA_ARCH:= 后面的-gencode arch=compute_20,code=sm_20 和-gencode arch=compute_20,code=sm_21这两行删除。否则后续在编译caffe的Makefile.config时遇到报错

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).

原因是,Makefile中采用了CUDA的compute capability 2.0和2.1,这是两种计算能力。安装的CUDA版本是8.0,但 从CUDA 8.0开始compute capability 2.0和2.1被弃用了,如下图为删除后的截图。


三4-5-e,直接更改cuda的路径为自己的实际路径(如上图),否则稍后编译时运行到NVCC时又会报cuda的路径错误

三4-6,修改Makefile文件

vi Makefile #打开Makefile文件 注意不是Makefile.config

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) (删除或者注释掉)

改成

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

三4-7,修改host_config.h文件

vi /usr/local/cuda/include/host_config.h #编辑host_config.h文件

#error-- unsupported GNU version! gcc versions later than 6 are not supported!

前面加上//

三4-8,开始编译 j8的数字8是用8个核心处理的意思,根据实际的cpu配置来,数字越大处理越快

make all -j8

开始编译是出现如下错误:

/usr/bin/ld: cannot find -lhdf5_hl

/usr/bin/ld: cannot find -lhdf5

……

……

解决方法:搜索 libhdf5_serial.so.10.1.0 的位置 find / -name libhdf5_serial.so.10.1.0

cd到该目录下

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

输入以下指令:

ln libhdf5_serial.so.10.1.0 libhdf5.so

ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

ldconfig #使链接生效

切换到caffe目录,再次编译

cd

cd caffe/

make all -j8 #make时如果出错,找解决办法尝试后要先make clean 再make

例如报错如下:

/usr/bin/ld: cannot find -lcblas

/usr/bin/ld: cannot find -latlas

collect2: error: ld returned 1 exit status

make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1

解决方法:确定Makefile.config没有错误后,可能是没有安装BLAS基本线性代数子库

apt-get install libopenblas-dev

make clean

make all -j8

make -j32 runtest #先make all 再make runtest,顺序不能乱。这个等的时间长,只要一直是 RUN OK 就OK!

到这里Caffe开发环境就配置好了。可以测试一下,输出AlexNet的时间测试结果

./build/tools/caffe time --gpu 0 --model ./models/bvlc_alexnet/deploy.prototxt

测试python

cd caffe/python

python

import caffe

如果返回的结果是空的,没有报错,编译就成功了,退出python可按ctrl+D

但是我的报错如下:

解决办法:

apt-get install python-numpy python-setuptools python-pip cython python-skimage python-protobuf

cd caffe

make pycaffe #make时一定在caffe目录下

cd caffe/python

python

import caffe

三-5,安装digits

digits是caffe的一个可视化工具,可使我们对caffe的操作变得方便容易

cd #返回到主目录下

git clone https://github.com/NVIDIA/DIGITS.git digits #获取digits安装包

cd digits

apt-get install graphviz gunicorn #安装digits及依赖项

apt-get install graphviz #其他库

for req in $(cat requirements.txt); do sudo pip install $req; done #若使用linux系统环境下的python,请使用该语句 (我本次的选择是这个)

pip install -r requirements.txt #若使用Anaconda环境下的python,使用该语句进行更新

cd digits

chmod 777 digits-devserver #提升权限

./digits-devserver #打开digits

报错如下:

ValueError: Caffe executable not found in PATH

解决办法:在运行./digits-devserver若出现无法找到caffe目录的错误

三-5-1,解决方法

三-5-1a,检查当前envvar的值 (vi /etc/profile)

echo $CAFFE_ROOT

#输出为空

三-5-1b,把envvar加到~/.profile中 下次当你登录时会自动加载 (/root/caffe/ 这是我的实际路径)

vi ~/.profile

export CAFFE_ROOT=/root/caffe/ #在尾部添加

或者直接执行echo "export CAFFE_ROOT=/root/caffe/" >> ~/.profile

三-5-1c,加载新配置

source ~/.profile

三-5-1d,检查新配置

echo $CAFFE_ROOT

/root/caffe/ #输出为添加后的路径地址

操作完成以后执行下面的命令 再次打开digits 成功

./digits-devserver

上面的步骤是按默认配置启动digits,如果你想自定义配置,可以在启动前输入:

按默认配置启动digits,如果你想自定义配置,可以在启动前输入:

./digits-devserver --config #启动前设置更多选项

或者

python -m digits.config.edit –verbose #高级用法

在局域网的任意电脑上打开浏览器,地址栏输入 http://主机ip:5000/ 访问 DIGITS server 主页

没有固定ip条件的朋友也可在路由器里捆绑花生壳后添加端口映射供外网访问

最近发表
标签列表