caffe和tensorflow的编译安装经验

本文详细记录了在Ubuntu14上安装CUDA 8.0、cuDNN 7.0以及编译安装TensorFlow-GPU 1.8.0的过程,包括显卡驱动、CUDA、cuDNN的安装步骤,以及在安装TensorFlow-GPU时解决的依赖和报错问题。通过这些步骤,确保了CUDA、cuDNN与TensorFlow版本的兼容性,成功构建了GPU版TensorFlow环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是之前自己编译安装这两个框架的记录总结,以备后续的需要。

ubuntu14安装caffe的GPU版本的过程记录,涉及CUDA,cuDNN。

一、安装好nvidia显卡驱动
1.去英伟达官网下载,显卡对应的驱动。此显卡驱动的版本必须要不低于CUDA需求的版本。(显卡驱动版本和cuda中显卡驱动版本相同竟然会出错,要更高才行)

2.安装CUDA之前,要停掉ubuntu的x server(图形界面程序):
sudo service lightdm stop

3.运行sudo sh NVIDIA-Linux-x86_64-384.98.run安装

4.安装完输入
nvidia-smi

如果出现了你的GPU列表,则说明驱动安装成功了。

sudo service lightdm restart重新启动图像界面

二、安装CUDA
1.去英伟达官网下载显卡、系统支持的CUDA,GTX1080显卡必须用CUDA 8.0版本。要下载run包。
https://developer.nvidia.com/cuda-toolkit-archive

2.开始安装
sudo sh cuda_8.0.61_375.26_linux-run
阅读完协议,询问是否安装NVIDIA driver时(实际上是安装cuda中带的375版本nvidia驱动),一定要选no。
其余的都选默认项。

3.配置环境变量
sudo vim /etc/profile
在尾部添加
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64
保存
source /etc/profile

4.动态库链接
sudo vim /etc/ld.so.conf.d/cuda.conf
写入
/usr/local/cuda/lib64 #(cuda文件夹实际上是cuda-8.0的链接)
保存。
sudo ldconfig

5.验证是否安装成功:
输入$ ls /dev/nvidia*,若生成 4 个左右 Nvidia 开头的文件(夹),说明此步安装成功。
查看nvcc编译器的版本,输入nvcc –V

测试cuda的Samples
命令行输入(注意cuda-8.0是要相对应自己的cuda版本)
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

返回GPU的信息则表示配置成功

三、安装cuDNN
1.上官网下载对应的cudnn(需要注册账号)
https://developer.nvidia.com/cudnn

解压
tar xvzf cudnn-8.0-linux-x64-v7.tgz

解压出cuda文件夹
cd cuda

2.复制头文件和库文件
sudo cp include/*.h /usr/local/include/
sudo cp lib64/lib* /usr/local/cuda-8.0/lib64
建立软连接
cd /usr/local/cuda-8.0/lib64
sudo chmod +r libcudnn.so.7.0.5
sudo ln -sf libcudnn.so.7.0.5 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig

四、安装caffe
参照官网指导http://caffe.berkeleyvision.org/install_apt.html
1.安装git
sudo apt-get install git
2.下载caffe
git clone https://github.com/BVLC/caffe.git

3.安装caffe依赖
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install –no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

4.编译
cp Makefile.config.example Makefile.config
修改make的参数
vim Makefile.config
将# USE_CUDNN := 1一行开头的#删除,保存。
如果需要多显卡协作,去掉注释USE_NCCL := 1(需要安装NCCL)
启动8进程编译,会快一些
make all -j8
make test -j8
make runtest -j8

五、安装pycaffe

1.安装anaconda
去清华镜像下载anaconda
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

sh Anaconda2-5.0.1-Linux-x86_64.sh
可以手动添加环境变量
sudo vim /etc/profile
尾部添加
export PATH=/home/mvg/anaconda2/bin:$PATH
保存
source /etc/profile

输入python,进入python交互界面,显示为anaconda,则安装成功。
pip list查看科学计算的包是否都已经安装了。

2.修改caffe目录下的Makefile.config中python相关配置
修改下面这些默认被注释的行:
ANACONDA_HOME := /home/mvg/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

PYTHON_LIB := $(ANACONDA_HOME)/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

3.编译pycaffe
make pycaffe -j8
make pytest -j8
编译完成后,可以添加~/caffe/python到$PYTHONPATH:
$ sudo vim /etc/profile

# 文件尾部添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

$ source /etc/profile # 使之生效
就可以在python中import caffe了。

备注:过程中出现任何问题,去网上搜索报错,仔细检查,一般都能解决。

tensorflow-gpu 源码安装步骤记录

发现之前的caffe-gpu编译步骤记录很有用,为后续别的新机器上安装填了很多坑,所以也记录一下这次tensorflow-gpu源码安装的步骤。

由于pip安装的tensorflow-gpu中cuda和cudnn版本总是和自己机子(cuda8.0 + cudnn7.0)对不上,老是报错,官方的二进制版本都是(cuda8+cudnn6,或cuda9+cudnn7)所以决定从源码安装。

1. 按照官方指导,先安装依赖:

sudo apt-get install python-numpy python-dev python-pip python-wheel
如果已经安装了ananconda,略过这步。

2. 安装好cuda,cudnn。

可以参照之前的caffe-gpu中的记录。

3. 配置libcupti

官方的错误指导是:对于 Cuda Toolkit 8.0 版或更高版本,您可以通过以下命令进行安装:
$ sudo apt-get install cuda-command-line-tools
这个安装命令怎么都不成功,但事实上,cuda8.0安装完毕后已经具备了cupti工具。
ls /usr/local/cuda/extras/CUPTI/lib64
查看发现已经有libcupti库了。

只需将其路径添加到LD_LIBRARY_PATH 环境变量中:
sudo vim /etc/profile
在末尾加上export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
source /etc/profile

4. 安装bazel

bazel是tensorflow的编译工具(类似make,cmake)。
https://github.com/bazelbuild/bazel/releases 中下载
bazel-0.14.0-installer-linux-x86_64.sh
传到tensorflow-prepare文件夹中
sudo bash bazel-0.14.0-installer-linux-x86_64.sh –user
export PATH=”$PATH:$HOME/bin”

在命令行中输入bazel version,能够看到正确输出,表示安装成功。

5. 克隆 TensorFlow 代码库

git clone https://github.com/tensorflow/tensorflow
cd tensorflow
git checkout r1.8

6.编译tensorflow之前,configure步骤

./configure
按照提示一步步输入选择。

7.构建 pip 软件包

bazel build –config=opt –config=cuda //tensorflow/tools/pip_package:build_pip_package

遇到的几处报错:
(1)开头no such package ‘@local_config_cuda//cuda’,下面是提示cannot find cudnn.h in /usr/local/cuda8.0/.
解决方法:之前只是将cudnn.h复制到了/usr/local/include中。
sudo cp /usr/local/include/cudnn.h /usr/local/cuda-8.0/include/
(2)提示Cannot find libdevice.10.bc under /usr/local/cuda-8.0
解决方法:
sudo cp /usr/local/cuda-8.0/nvvm/libdevice/libdevice.compute_50.10.bc /usr/local/cuda-8.0/nvvm/libdevice/libdevice.10.bc

大约1个小时能够编译完成。(i7-6800k 6核12线程)

8. 安装tensorflow pip包

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install /tmp/tensorflow_pkg/tensorflow-1.8.0-cp27-cp27mu-linux_x86_64.whl

测试是否安装成功
python -c “import tensorflow”
发现报错:ImportError: No module named platform
在网上查询得知,不应该在tensorflow源码目录import tensorflow,否则会优先导入本地的库。
cd ~
python -c “import tensorflow”
无报错,安装成功。

参考:
https://www.tensorflow.org/install/install_sources#ConfigureInstallation
https://docs.bazel.build/versions/master/install-ubuntu.html
https://github.com/tensorflow/tensorflow/issues/17801

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值