华硕笔记本(GTX 1060显卡)安装Ubuntu16.04+Nvidia显卡驱动+Cuda8.0+cudnn6.0+ROS+Opencv3.2+Caffe+Tensorflow

2023-11-01

华硕笔记本(GTX 1060显卡)安装Ubuntu16.04+Nvidia显卡驱动+Cuda8.0+cudnn6.0+ROS+Opencv3.2+Caffe+Tensorflow

1.安装Ubuntu16.04

Ubuntu16.04的安装较为简单,我使用的是UltraISO制作U盘启动盘,具体的操作可以看这个链接:
http://jingyan.baidu.com/article/3c48dd348bc005e10be358eb.html
值得注意的是在硬盘分区上,我的硬盘是1T的机械硬盘和128G的固态硬盘。网上有说可以把Ubuntu16.04的一部分放在固态上,可以加快速度。但是我也在固态上装了win10,担心要是重装系统时引导区会有问题,所以我把Ubuntu16.04全部放在了机械硬盘里。我给Ubuntu的总大小为340G左右,分区情况如下:
/ :30G
/boot: 500M
swap:8G(和内存空间相同)
/home: 300G

2.安装Nvidia驱动

这一步网上的说法有很多很多,我尝试了使用系统自带的附加驱动和从NVIDIA官网上下载驱动,但是最终都没有摆脱循环开机界面的结局。
但经过多次尝试和搜索,我终于找到了符合我这样电脑的方法,大神的链接如下:
http://www.cnblogs.com/supersponge/p/6490804.html
这里面大神已经说的非常详细了,我就把真正对我有用的操作部分写一下:

1.从Nvidia官网查找对应的显卡驱动,链接如下:
http://www.nvidia.cn/Download/index.aspx?lang=cn
尽可能找满足自己系统的最新的驱动。

2.后面就按照大神的指令安装就好了,非常简单。
打开一个终端窗口,运行以下命令(添加nvidia官方驱动包源)

$ sudo add-apt-repository ppa:graphics-drivers/ppa

$ sudo apt-get update

安装驱动(对应我的gtx1060显卡,最新的驱动是381)

$ sudo apt-get install nvidia-381 nvidia-settings

3.但是在安装过程中会出现多个对话框,要注意正确选择,否则就会造成循环进入开机界面。
【1】它会提示我们是否要Disable security boot,一定要选择“是”,关闭security boot。
【2】后面,它为了防止是病毒关闭了security boot,还会让我们设置一个验证码,设置12345678即可,它在开机的时候会让我们输入对应位数的数字,这样设置最方便。
【3】等驱动安装完毕,重启计算机后还要注意,它会提示我们是(1)boot还是(2)Change boot state,一定要选择(2)改变boot状态,否则还会出现循环登录。

完成以上所有步骤后,Nvidia显卡驱动安装成功!为了确认,你可以打开系统的System settings,查看有没有出现Nvidia的显卡信息,如果有的话,说明就已经成功安装了Nvidia的显卡驱动了。

3.安装Cuda8.0

要学习caffe或者tensorflow,cuda是少不了的。先从Nvidia官网下载适合你电脑的cuda。下载链接: https://developer.nvidia.com/cuda-release-candidate-download
这里写图片描述
(pic:https://img-blog.csdn.net/20160824135852933)
下载好后,执行:

sudo sh cuda_8.0.61_linux.run

安装过程中,会问你好几个问题。只要注意问你要不要安装Nvidia显卡驱动时选择no就好了。(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62? n)其它的都可以选择yes。
完成后,执行:

sudo gedit ~/.bashrc

在末尾添加:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存后:

source ~/.bashrc

完成后测试是否安装成功:

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

如果在最后一行显示PASS,并出现了Nvidia的显卡信息,则安装成功。
也可以使用

nvidia-smi

检查显卡信息。

4.安装cudnn6.0

最新的Tensorflow只支持cudnn6.0以上版本,所以选择安装cudnn6.0。还是要去Nvidia官网下载cudnn压缩包,链接:https://developer.nvidia.com/rdp/cudnn-download
这里写图片描述
(pic:https://img-blog.csdn.net/20160824135909011
解压后,将其中的include和lib64文件夹分别复制到/usr/local/cuda文件夹下:

cd cuda
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/ 

然后建立软链接:

cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6    #删除原有动态文件
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6  #生成软衔接
sudo ln -s libcudnn.so.6 libcudnn.so      #生成软链接

记得将版本号改为自己的。

5.安装ROS Kinetic

Ubuntu16.04对应的ros版本为Kinetic。这部分按照官网说明安装即可,基本不会出什么问题。链接:http://wiki.ros.org/kinetic/Installation/Ubuntu

6.安装Opencv3.2

多次实践证明Opencv3是需要安装的。然而在Caffe的安装中使用Opencv3比较好,所以我使用了源码安装Opencv3。直接使用官网上的源码安装。链接:http://opencv.org/releases.html 。选择了Opencv3.2的Source,就可以下载安装包了。
然后解压到需要安装的位置,进入解压出的文件夹opencv-3.2.0下,执行:

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

编译成功后安装

sudo make install

最后检查安装是否成功:

pkg-config --modversion opencv 

7.安装Caffe

这部分参考http://blog.csdn.net/yhaolpz/article/details/71375762的内容就可以了。
在要安装的地方执行:

git clone https://github.com/BVLC/caffe.git

进入caffe目录,执行:

sudo cp Makefile.config.example Makefile.config

然后打开Makefile.config:

sudo gedit Makefile.config

修改Makefile.config里的一些配置:
1、可以不修改cudnn。使用cudnn可能可以提速30%左右,Caffe里不一定需要用cudnn。
2、修改Opencv版本

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

3、使用Python_layer

#WITH_PYTHON_LAYER := 1 
修改为 
WITH_PYTHON_LAYER := 1

4、修改 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/serial 

然后修改 caffe 目录下的 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

然后修改 /usr/local/cuda/include/host_config.h 文件 :

将
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

最后进行编译:

make all -j8

编译成功后进行测试:

sudo make runtest -j8

成功后会显示PASSED。

8.安装Tensorflow

这部分我的安装非常简单,直接使用了官网上的pip安装方法即可,只有两步。官网安装链接:https://www.tensorflow.org/install/install_linux
我使用的是Python2.7版本,所以执行:

sudo apt-get install python-pip python-dev   # for Python 2.7

然后执行:

pip install tensorflow-gpu  # Python 2.7;  GPU support

即可。
安装完成后验证是否可用:

python
#进入python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

如果能显示Hello,TensorFlow!,即安装成功。

参考:
[1] https://img-blog.csdn.net/20160824135852933
[2] https://img-blog.csdn.net/20160824135909011
[3] http://blog.csdn.net/yhaolpz/article/details/71375762

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华硕笔记本(GTX 1060显卡)安装Ubuntu16.04+Nvidia显卡驱动+Cuda8.0+cudnn6.0+ROS+Opencv3.2+Caffe+Tensorflow 的相关文章

  • 从redis中检索大数据集

    一台服务器上的应用程序查询另一台服务器上运行的 Redis 查询的结果数据集约为 250kzrangebyscore objects locations inf inf这在应用程序服务器上似乎需要 40 秒 当使用命令执行时redis cl
  • 限制 SFTP 用户只能访问主目录

    我正在尝试在 EC2 ubuntu 服务器上设置客户端 SFTP 空间 访问权限仅限于该用户的主目录 关于此的其他主题只有大约六千个 而且我在其他选项卡中打开了其中的大多数主题 这看起来很简单 我已经搞定了 sudo groupadd lo
  • 为什么我无法“停用”pyenv / virtualenv?如何“修复”安装

    我是新安装的乌班图16 04并考虑到使用最新版本的开发pandas我安装了Python 3 6 0使用虚拟环境 选择 3 6 0 的一个原因是因为我在某处读到这个版本的 Python 可以原生处理虚拟环境 即无需安装任何其他东西 无论如何安
  • 无法打开 mysql-workbench

    我开始使用 mysql 但无法打开 mysql workbench 当我尝试通过 ubuntu 命令行打开它时 出现以下错误 usr lib mysql workbench mysql workbench bin 符号查找错误 usr li
  • VS Code 不会构建具有多个 .cpp 源文件的 C++ 程序

    请注意 我在 Ubuntu 17 10 上使用 VS Code 并使用 GCC 编译器 我在构建一个使用附加 cpp 文件的简单程序时遇到问题 我可能在这里遗漏了一些明显的东西 因为我对编程相当陌生 但我会解释到目前为止我所做的事情 这阻止
  • 与黄金链接器链接的二进制文件运行速度更快吗?

    使用 GEANT4 大型 Monte Carlo C 模拟框架 大量共享库 运行模拟代码 使用黄金链接器和基于标准 BFD 的链接器编译并链接 GEANT 和我的应用程序 看起来黄金跑得更快一点 1 47 vs 1 51 有人可以阐明造成差
  • CUDA 常量内存是否应该被均匀地访问?

    我的 CUDA 应用程序的恒定内存小于 8KB 既然它都会被缓存 我是否需要担心每个线程访问相同的地址以进行优化 如果是 如何确保所有线程同时访问同一地址 既然它都会被缓存 我是否需要担心每个线程访问相同的地址以进行优化 是的 这缓存本身每
  • Yocto for Nvidia Jetson 由于 GCC 7 而失败 - 无法计算目标文件的后缀

    我正在尝试将 Yocto 与 meta tegra 一起使用 https github com madisongh meta tegra https github com madisongh meta tegra 为 Nvidia Jets
  • 加速Cuda程序

    要更改哪一部分来加速此代码 代码到底在做什么 global void mat Matrix a Matrix b int tempData new int 2 tempData 0 threadIdx x tempData 1 blockI
  • 当请求太大时,Nginx(我认为)会以错误的权限保存文件

    所以 我对托管和 Linux 等都是完全陌生的 所以如果我说错了 请原谅我 我还在学习 我正在使用 Django 创建一个小型个人网站 我想把它放到网上看看是否一切正常 我从 linode 买了一台便宜的服务器 并使用 Digital Oc
  • cuda中有模板化的数学函数吗? [复制]

    这个问题在这里已经有答案了 我一直在寻找 cuda 中的模板化数学函数 但似乎找不到 在普通的 C 中 如果我调用std sqrt它是模板化的 并且将根据参数是浮点数还是双精度数执行不同的版本 我想要这样的 CUDA 设备代码 我的内核将真
  • 在ubuntu 18.04上安装python 2.7

    有没有办法在 Ubuntu 18 04 上安装 Python 2 7 我尝试了这个命令 但它不起作用 sudo apt install python minimal 有没有办法手动安装 我尝试使用 python 2 7 作为不支持 pyth
  • vagrant + virtualbox 等待机器启动时超时

    抱歉 我对 vagrant 很陌生 我正在运行 vagrant 1 4 3 和 virtualbox 4 3 26 我的主机操作系统是 ubuntu 14 04 2 我是一名 php 开发人员 我正在努力让我的开发环境为几个项目做好准备 我
  • “docker compose up”永远挂起(通常),即使使用 V2,尽管熵很高(Ubuntu)

    我遇到了问题docker compose up命令 因此 我最近创建了一个全新的 Ubuntu 操作系统安装 并且一直在设置我的开发环境 我已经安装了 Docker 并mostly一切似乎都运转良好 启动单个容器按预期工作 例如 docke
  • 使用mongodb+srv配置Mongo

    我在 docker 上启动 mongo 所以默认主机 localhost port 27017 用户名 root密码 example 现在我想通过连接字符串进行连接 mongodb srv root example localhost si
  • http://localhost:50070/ 的 hadoop Web UI 不起作用

    命令 jps 显示以下详细信息 第5144章 5464 节点管理器 5307 资源管理器 5800 Jps 显然namenode和datanode丢失了 网络用户界面位于http 本地主机 50070 http localhost 5007
  • __device__ __constant__ 常量

    有什么区别吗 在 CUDA 程序中定义设备常量的最佳方法是什么 在 C 主机 设备程序中 如果我想将常量定义在设备常量内存中 我可以这样做 device constant float a 5 constant float a 5 问题 1
  • 如何在 Caffe 的网络中出现多次损失?

    如果我在网络中定义多个损失层 从这些末端到网络的开头是否会发生多个反向传播 我的意思是 他们真的是这样工作的吗 假设我有这样的事情 Layer1 Layer2 Layer n Layer cls1 bottom layer n top cl
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • 有没有人在 Ubuntu 16.04 LTS 上安装 QGIS

    按照以下网址提供的说明进行操作 这一页 http www qgis org en site forusers alldownloads html并收到以下错误 以下软件包具有未满足的依赖关系 python qgis Depends pyth

随机推荐

  • Vue 引入 icon 图标

    安装 npm install vue svg icon save dev 使用 1 阿里巴巴矢量图 选择需要的字体修改参数 选择SVG下载 2 IcoMoon 点击右上角 icoMoon App 点击左上角 Import Icons 选择下
  • 【FICO系列】SAP 创建会计凭证(FB01)的BAPI

    公众号 SAP Technical 本文作者 matinal 原文出处 http www cnblogs com SAPmatinal 原文链接 FICO系列 SAP 创建会计凭证 FB01 的BAPI 前言部分 大家可以关注我的公众号 公
  • TCP+UDP通信实验

    一 实验要求 1 基于服务器的客户端相互直接通信 具体要求包括 2 Server支持多客户访问 3 C与S之间使用TCP连接 4 C与C之间直接通信 不是通过S传递 5 C与C之间直接通信既可以使用TCP 也可以使用UDP 6 可以使用So
  • 放弃手中Docker拥抱下一代容器管理工具Podman

    关注 WeiyiGeek 公众号 将我设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 0x00 基础介绍 前生今世 0x01 安装试用 Ubuntu Podman 命令 容器管理工具 0x02 小试牛刀 1 Podma
  • 进程和线程的深入理解

    进程和线程的深入理解 下面是抽象类比 单CPU 一台单核处理器计算机 一个车间 多CPU 一台多核处理器计算机 一座工厂 进程 一个车间 一个进程 即一个运行的程序 多进程 一座工厂可以同时运行多个车间 CPU和进程 单CPU只能同时运行单
  • XSS、SSRF、CSRF、XXE 漏洞的区别

    XSS 跨站脚本攻击 XSS属于客户端攻击 受害者最终是用户 但特别要注意的是网站管理员也属于用户之一 这就意味着XSS可以进行 服务端 攻击 因为管理员要比普通用户的权限大得多 一般管理员都可以对网站进行文件管理 数据管理等操作 而攻击者
  • CTF赛制介绍&工具介绍

    CTF基本赛制与题型 语言环境的安装 常见工具的简介与安装 什么是CTF CTF Capture The Flag 中文一般译作夺旗赛 在 网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式 CTF起源于1996年DEFCO
  • 解决‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

    python开发安装第三方库时 很多人选择在cmd终端用命令行pip进行安装 然而有时敲入pip命令会提示 pip 不是内部或外部命令 也不是可运行的程序 或批处理文件 为何会出现此类问题呢 一般都是因为系统环境变量没有配置好 推荐链接 电
  • Educational Codeforces Round 113 (Rated for Div. 2)

    A Balanced Substring 题意 字符串 s 由字符 a 和 b 构成 寻找 s 的子串 s l r 使得子串中字符 a 和 b 的数量相同 输出 l r 思路 范围很小 暴力解决 求出 s 子串 s 0 i 中字符 a 和
  • 线性代数——正交矩阵

    正交矩阵 orthogonal matrix 正交矩阵的定义 正交矩阵性质 1 AT是正交矩阵 2 A的各行是单位向量且两两正交 3 A的各列是单位向量且两两正交 4 A 1或 1 正交矩阵的定义 如果 AAT E E为单位矩阵 AT表示
  • @Autowired的使用:推荐对构造函数进行注释

    在编写代码的时候 使用 Autowired注解是 发现IDE报的一个警告 如下 Spring Team recommends Always use constructor based dependency injection in your
  • 机器学习特征选择:传统互信息、k-nearest neighbor互信息

    目录 传统互信息 Estimating Mutual Information中的的两种基于最近邻的互信息 Mutual Information between Discrete and Continuous Data Sets论文中提到的互
  • C51单片机中常用的头文件

    C51中常用的头文件有51 h 52 h math h intrins h absacc h stdio h stdlib h ctype h 其中51 h 52 h是定义特殊功能寄存器和位寄存器的 math h是定义数学运算的 求方根 正
  • Keil 仿真退出时出现“encountered an improper argument” 解决办法

    keil仿真退出时出现 encountered an improper argument 错误 先取消断点 再按取消仿真按钮
  • C++项目的报错经历及解决之法

    以下是自己在平时创建C 项目遇到的一些问题 记录在此 2021年4月13日 问题集锦 编译环境是VS2019 新建一个C 空项目 1 无法打开头文件xxx h 注 此处的头文件是我通过 添加现有项 所加入项目的 include
  • 安装 node-sass 和 sass-loader 的过程及各 node 版本对应的 node-sass 版本号

    1 node 版本 node sass 版本及 sass loader 版本查看 其一 我的 node 版本查看 在命令行输入查询命令 node v 我的 node 版本为 v14 19 0 其二 我的 node sass 版本查看 nod
  • vue项目中对某个区域绘制水印

    首先看一下效果 其实原理很简单 就是使用canvas画成图 然后设置div的背景即可 这里参考了其他人思路又按照我自己的需求 封装了一个插件 可以直接在项目中使用 这里可以对某一个单独的区域设置水印 use strict const wat
  • 项目文档怎么写

    项目文档怎么写 1 怎么写项目开发的文档 软件开发中文档的编写是一个不可缺少的环节 常见的如 需求分析 概要分析 数据库设计 等 在 软件人 的阵营里向来存在两种观点 注重文档还是关心代码 我这里写一个 用户信息模块的概要设计文档 只列举主
  • 高德地图 scale

    AMap Scale 插件 比例尺插件 位于地图右下角 用户可控制其显示与隐藏 代码示例 mapObj plugin AMap Scale function var scale new AMap Scale mapObj addContro
  • 华硕笔记本(GTX 1060显卡)安装Ubuntu16.04+Nvidia显卡驱动+Cuda8.0+cudnn6.0+ROS+Opencv3.2+Caffe+Tensorflow

    华硕笔记本 GTX 1060显卡 安装Ubuntu16 04 Nvidia显卡驱动 Cuda8 0 cudnn6 0 ROS Opencv3 2 Caffe Tensorflow 1 安装Ubuntu16 04 Ubuntu16 04的安装