IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Ubuntu20.04安装C3D-v1.0 -> 正文阅读

[Python知识库]Ubuntu20.04安装C3D-v1.0

最近因为学习使用基于caffe的C3D,参考网上的一些步骤汇总了基本步骤和一些常见的问题

1、下载C3D

在github上下载C3D的文件或者使用git clone命令

C3D github地址

2、安装必需依赖、配置环境变量

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 libopenblas-dev liblapack-dev libatlas-base-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo apt-get install git cmake build-essential

在安装完成所有的依赖包之后,打开~/.bashrc配置环境变量

在终端输入vim打开.bashrc文件

sudo vim ~/.bashrc

在文件最后加入以下两行

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH 

在终端输入source ~/.bashrc刷新配置文件

source ~/.bashrc

3、下载gcc7、g++7

sudo update-alternatives --config gcc

C3D中部分功能在cuda10.2之后的版本中不再收到支持,所以需要下载cuda10.2的版本,cuda10.2支持gcc7,Ubuntu20.04默认安装gcc9和g++9,所以需要进行重新安装和设置默认gcc、g++版本

在终端中输入命令安装gcc-7、g++-7

sudo apt-get insatll gcc-7
sudo apt-get install g++-7

在终端输入命令注册安装的gcc7版本

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 300

输入命令选择默认gcc版本

sudo update-alternatives --config gcc

输入版本前的编号选择gcc-7

修改g++与gcc步骤相同

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 44
sudo update-alternatives --config g++

?4、安装cuda 10.2

前往Nvidia官网下载cuda 10.2?

cuda下载

找到cuda 10.2进入下载页面

依次选择Linux、x86_64、Ubuntu、runfile(local),按照下面的操作进行下载安装

?

?在终端输入以下命令进行安装

?进入安装界面后

可以选择安装的组件(如果已经在Ubuntu中安装了Nvidia驱动,可以取消勾选Driver)

安装成功后需要对cuda配置环境变量

打开.bashrc文件,加入以下两行?

export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

刷新配置文件

source ~/.bashrc

验证cuda是否安装成功

在终端输入以下命令

cd /usr/local/cuda-10.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

当出现以下信息则表明安装成功

?5、安装cudnn

前往官网下载cudnn

cudnn下载

在这里我使用的版本是与cuda发布时间相近的7.6.5,如果有需求的话可以自行选择其他版本

选择适配cuda10.2的cudnn7.6.5

选择下载压缩包 cuDNN Library for Linux

?

解压后得到一个cuda文件夹,在终端输入以下命令

cd /cuda/include #进入解压得到的cuda目录下的include
sudo cp cudnn.h /usr/local/cuda/include/ #将解压得到的头文件复制到usr目录下的include中

cd /cuda/lib64  #进入cuda目录下的lib64
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7 #删除原有动态文件
sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接

在终端使用nvcc -V命令验证是否安装成功

?6、安装opencv-3.4.10

在这里我使用的版本是opencv-3.4.10

前往官网安装opencv安装

下载sources压缩包

解压并进入opencv-3.4.10目录,输入以下命令进行编译

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j12

在编译完成后进行安装

sudo make install -j12

安装完成后通过以下语句查看安装结果

pkg-config --modversion opencv 

7、安装python2

C3D本地的源代码是使用python2的脚本规范进行编写,所以直接使用python2可以省去很多麻烦,python3的一些改动,有时间的话会做出补充。

安装python2

sudo apt-get insatll python2

设置默认python为python2

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
sudu update-alternatives --config python

通过curl下载get-pip.py文件

https://bootstrap.pypa.io/get-pip.py

下载慢的情况可以使用百度网盘下载:

https://pan.baidu.com/s/13rIiIcpaQpO7iKexhxKoRA?提取码:r2mb

在终端输入命令进行安装

sudp python get-pip.py #运行安装脚本

8、安装必备python包和boost

进入下载的C3D目录,以C3D-v1.0为例

cd C3D-v1.0/python
for req in $(cat requirements.txt); do pip install $req; done 

在安装时会提示有几个包无法下载,可以忽略。

进入boost官网下载boost?boost

版本可以自己选择,大于1.55即可

这里我选择的是1.72.0

解压完成进入得到的目录

在终端输入以下命令即可完成安装

./bootstrap.sh --with-libraries=all 
sudo ./b2
sudo ./b2 install 

9、安装C3D

进入C3D-v1.0目录

输入以下命令

sudo cp Makefile.config.example Makefile.config
gedit Makefile.config

注释掉CUDA_ARCH中除50外的其余行

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
		-gencode arch=compute_20,code=sm_21 \
		-gencode arch=compute_30,code=sm_30 \
		-gencode arch=compute_35,code=sm_35 \
		-gencode=arch=compute_50,code=sm_50 \
		#-gencode=arch=compute_50,code=compute_50
修改为
CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \
		#-gencode arch=compute_20,code=sm_21 \
		#-gencode arch=compute_30,code=sm_30 \
		#-gencode arch=compute_35,code=sm_35 \
		-gencode=arch=compute_50,code=sm_50 \
		-gencode=arch=compute_50,code=compute_50

取消注释OPENCV_VERSION:=3

# OPENCV_VERSION := 3
修改为
OPENCV_VERSION := 3

修改python路径:

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/seria

修改Makefile文件

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
LIBRARIES := cudart cublas curand \
	pthread \
	glog protobuf leveldb snappy \
	boost_system \
	hdf5_hl hdf5 \
	opencv_core opencv_highgui opencv_imgproc
修改为
LIBRARIES := cudart cublas curand \
	pthread \
	glog protobuf leveldb snappy \
	boost_system \
	hdf5_serial_hl hdf5_serial \
	opencv_core opencv_highgui opencv_imgproc

在终端输入以下命令编译C3D

make all -j12
make test -j12
make runtest -j12

在编译过程中可能会出现以下问题:

error: no matching function for call to ‘max(const float&, double)

解决方法:

修改/src/caffe/test/test_gradient_check_util.hpp文件

Dtype scale = std::max(
std::max(fabs(computed_gradient), fabs(estimated_gradient)), 1.);

改为
Dtype scale = std::max(
std::max(fabs(computed_gradient), fabs(estimated_gradient)),
Dtype(1.));

现在C3D就可以正常使用。

参考文章:Ubuntu16.04 Caffe 安装步骤记录(超详尽)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:49:15  更:2021-07-14 10:50:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 1:08:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码