系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】(下)

简介: 系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】(下)

之后我们再切换到我们cuda文件的位置,在我这里就是在当前目录下,然后我们运行它:

sudo sh cuda_9.0.xx_xx_linux.run

对应自己的文件名称。之后我们进入nvidia的协议里面,需要我们看他的协议:

我们敲回车,敲到100%

之后它显示问我们是不是接受这个东西,我们在终端输入accept。

然后提示是否安装nivdia的驱动,我们不需要安装这个,输入n,之后敲回车:

遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU在工作需要选择no,否则可以yes),其他都选择yes或者默认即可。(如果您的电脑是双显卡且在这一步选择了yes,那么你极有可能安装完CUDA之后,重启图形化界面后遇到登录界面循环问题:输入密码后又跳回密码输入界面。 这是因为你的电脑是双显,而且用来显示的那块GPU不是NVIDIA,则OpenGL Libraries就不应该安装,否则你正在使用的那块GPU(非NVIDIA的GPU)的OpenGL Libraries会被覆盖,然后GUI就无法工作了。)

安装成功后,会显示installed,否则会显示failed。

之后我们重新启动图形化界面:

sudo service lightdm start

如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。如果不能进入的话,参考以下方案,否则跳过:

如果你遇到了重复登陆情况,不用急着重装系统,官方教程上有提及,原因上一步的注中有提及,在安装openGL时你可能不注意选择了yes,请卸载cuda,然后重装。

卸载:由于登陆进入不到图形用户界面(GUI),但我们可以进入到文本用户界面(TUI)

在登陆界面状态下,按Ctrl + Alt + f1,进入TUI

执行

$ sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl

$ sudo /usr/bin/nvidia-uninstall

然后重启

$ sudo reboot

重新安装.run   再次安装时请一定留意,在提示是否安装OpenGL时,你的是双显卡应该选则n。

 

进入ubuntu之后我们重启电脑:

sudo reboot

之后检查Device Node Verification

ls /dev/nvidia*

包含一个类似/dev/nvidia-uvm的,则安装成功。

大多数结果可能会是这样

ls: cannot access/dev/nvidia*: No such file or directory

或是这样的,只出现

/dev/nvidia0     /dev/nvidiactl

a中的一个或两个,但没有/dev/nvidia-num,即文件显示不全。

不用着急也不用急着重装系统(我在安装时就是这种情况),官方指导中有详细的解决方案,但是我的方法和官方稍微有些出入。

首先要添加一个启动脚本(添加启动脚本的方法大致有两种,我采用最直接的方法,另一种可以先创建一个文件然后通过mv的方式移动到启动文件夹下,可自行百度)

执行

$ sudo vi /etc/rc.local

如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外)。这文件的第一行是

#!/bin/sh -e

把-e去掉(这步很重要,否则它不会加载这文本的内容)

然后把下列内容除了#!/bin/bash外复制到其中,(before exit 0 )保存退出。

 

#!/bin/bash

/sbin/modprobe nvidia

if [ "$?" -eq 0 ]; then

# Count the number of NVIDIA controllers found.

NVDEVS=`lspci | grep -i NVIDIA`

N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`

NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`

N=`expr $N3D + $NVGA - 1`

for i in `seq 0 $N`; do

mknod -m 666 /dev/nvidia$i c 195 $i

done

mknod -m 666 /dev/nvidiactl c 195 255

else

exit 1

fi

/sbin/modprobe nvidia-uvm

if [ "$?" -eq 0 ]; then

# Find out the major device number used by the nvidia-uvm driver

D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`

mknod -m 666 /dev/nvidia-uvm c $D 0

else

exit 1

fi

下次重启时,你应该能直接看到/dev目录下的三个nvidia的文件

输入:$ ls /dev/nvidia*

结果显示:/dev/nvidia0       /dev/nvidiactl       /dev/nvidia-uvm

成功!

 

由于我这里是一次成功,所以上述方案仅供参考,并没有实践过。

接下来我们设置环境变量:

sudo gedit /etc/profile

上述命令会打开一个文件,我们在末尾添加两行:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\

                                                  ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

我这里装的是cuda9.0如果你们装的不是的话,这个cuda-9.0这个目录就还得改一下。

如果是32位系统的话:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib\

                                                  ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

之后我们选择重启电脑:

sudo reboot

a.之后我们检查上述环境是否设置成功:

cat /proc/driver/nvidia/version

得到上述结果。

b.再验证CUDA Toolkit:

nvcc -V

得到下图结果:

如果你的是:

The program 'nvcc' is currently not installed. You can install it by typing:

sudo apt-get install nvidia-cuda-toolkit

这样的话,那就表明环境变量没有添加成功,你需要按照上文中说的添加环境变量,再去添加一下。

接下来我们尝试编译一下cuda的例子:

我们首先需要进入NVIDIA_CUDA-9.0_Samples这个文件夹下面,在这下面打开终端,然后make一下:

我这里的话也是一次就成功了,如果出现没有gcc报错的话,我们可以安装一下:

sudo apt-get install gcc

如果编译成功,最后会显示Finished building CUDA samples,如下图所示:

之后的话,我们运行编译生成的二进制文件:进入到这个NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release文件夹下面,输入:./deviceQuery  

./deviceQuery

结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL:

最后再检查一下系统和CUDA-Capable device的连接情况:

终端输入 : $

./bandwidthTest

看到类似如下图片中的显示,则代表成功:

4.安装cudnn:

我们需要进入nvidia的官网:https://developer.nvidia.com/rdp/cudnn-archive,区选择我们需要的版本:

然后提示我们登录,有帐号的话就登录,没有的话就注册一个:

之后我们点击上图的安装包进行下载:

我们将其解压,解压之后名称会变为cuda:

之后我们将其移入home文件夹下面,然后进入cuda的include文件夹下面,执行下面这个命令复制头文件:

sudo cp cudnn.h /usr/local/cuda/include/

之后在终端进入cuda/lib64文件夹下面,运行以下命令:

#复制动态链接库

sudo cp lib* /usr/local/cuda/lib64/

#删除原有动态文件

1. cd /usr/local/cuda/lib64/
2. sudo rm -rf libcudnn.so libcudnn.so.7

#生成软衔接

sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7

#生成软链接

sudo ln -s libcudnn.so.7 libcudnn.so

随后需要将路径/usr/local/cuda/lib64 添加到动态库:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在打开的文件里面输入:

/usr/local/cuda/lib64

终端下接着输入命令使链接生效:

sudo ldconfig

之后查看一下是否链接成功:

sudo ldconfig -v

可以看到,我们这里是有这个文件的。ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。

之后用下面这个命令查看是否安装成功:

5.安装Tensorflow

我们首先看一下有没有python:

一般都有,没有的话安装一下:

之后安装一下pip:

sudo apt-get install python-pip

更新一下pip:

sudo pip install -U pip

安装tensorflow-gpu 1.9.0:

sudo pip install tensorflow-gpu==1.9.0

之后进入python输入以下命令:

1. import tensorflow as tf
2. print(tf.__version__)

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用构建高效云原生应用:云平台的选择与实践
【5月更文挑战第31天】 随着人工智能技术的飞速发展,深度学习已经成为推动计算机视觉进步的关键力量。特别是在图像识别领域,通过模仿人脑处理信息的方式,深度学习模型能够从大量数据中学习并识别复杂的图像模式。本文将探讨深度学习技术在自动驾驶系统中图像识别方面的应用,重点分析卷积神经网络(CNN)的结构与优化策略,以及如何通过这些技术提高自动驾驶车辆的环境感知能力。此外,文章还将讨论目前所面临的挑战和未来的研究方向。
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
构建一个基于深度学习的自动驾驶模拟系统
【5月更文挑战第31天】本文探讨了构建基于深度学习的自动驾驶模拟系统,该系统包括模拟环境、传感器模拟、深度学习模型、车辆控制和评估反馈等组件。关键技术研发涉及3D渲染、深度学习框架、传感器模拟、车辆动力学模型和评估反馈机制。模拟系统为自动驾驶测试提供安全平台,促进性能优化,随着技术发展,未来模拟系统将更智能,助力自动驾驶技术革新出行体验。
|
3天前
|
机器学习/深度学习 人工智能 算法
中草药识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
中草药识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
18 0
|
3天前
|
机器学习/深度学习 自动驾驶 安全
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第30天】 本篇文章探讨了深度学习技术如何革新当前自动驾驶系统的图像识别能力。文章首先回顾了传统机器学习方法在处理复杂交通场景时的局限性,并引入深度学习作为解决方案。接着,详细分析了卷积神经网络(CNN)在车辆检测、行人识别和交通标志识别等方面的应用,并通过实验数据展示了其在准确率和处理速度上的优势。最后,讨论了深度学习面临的挑战以及未来可能的发展方向。
|
3天前
|
机器学习/深度学习 自动驾驶 算法
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第30天】 在自动驾驶技术的迅猛发展中,图像识别作为其关键技术之一,扮演着至关重要的角色。本文聚焦于探讨如何通过深度学习算法优化图像识别过程,以提高自动驾驶系统的准确性和可靠性。文中首先概述了自动驾驶中图像识别的重要性,随后详细介绍了几种主流的深度学习模型及其在图像处理中的应用,包括卷积神经网络(CNN)、循环神经网络(RNN)及生成对抗网络(GAN)。此外,文章还分析了真实世界数据对模型训练的影响,并提出了当前技术面临的主要挑战及潜在的改进方向。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第30天】 随着人工智能技术的飞速发展,特别是深度学习算法在图像处理领域的突破性进展,图像识别技术已成为自动驾驶系统不可或缺的核心组成部分。本文旨在探讨深度学习技术如何提升自动驾驶车辆的图像识别能力,并分析其在复杂交通环境下的实际应用效果。通过对卷积神经网络(CNN)和循环神经网络(RNN)等关键深度学习模型的研究,我们揭示了这些模型在实时物体检测、分类和追踪中的作用机制,并提出了针对自动驾驶安全性的提升策略。
|
4天前
|
机器学习/深度学习 运维 监控
构建高效自动化运维系统:策略与实践基于深度学习的图像识别在自动驾驶系统中的应用
【5月更文挑战第29天】 在当今的信息技术时代,企业的IT基础设施管理变得日益复杂。为了保持竞争力,组织必须确保其服务的稳定性和效率。本文将探讨如何通过实施自动化运维系统来优化IT管理流程,降低成本并提高服务质量。文中不仅介绍了自动化的核心原则和组件,还分享了实际案例研究和最佳实践,为读者提供了一套切实可行的自动化运维解决方案。
|
4天前
|
机器学习/深度学习 决策智能 计算机视觉
利用深度学习优化图像识别系统性能
【5月更文挑战第29天】 随着人工智能技术的飞速发展,图像识别已成为计算机视觉领域的核心应用之一。传统图像识别方法在面对复杂场景和多样化对象时存在局限性,而深度学习技术凭借其强大的特征提取和学习能力,在提高图像识别准确率和处理速度方面展现出巨大潜力。本文旨在探讨如何通过构建和优化基于深度学习的卷积神经网络(CNN)模型来提升图像识别系统的性能,并分析不同网络结构和训练策略对识别效果的影响。通过实验对比,验证所提方法的有效性,并为未来相关研究提供参考。
|
4天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第29天】 随着人工智能技术的飞速发展,尤其是深度学习算法在处理复杂数据任务中的突出表现,图像识别作为其重要应用之一,已经成为推动自动驾驶技术进步的关键因素。本文将深入探讨深度学习技术在图像识别领域的最新进展,并分析这些进展如何被集成到自动驾驶系统中,以提升车辆的环境感知能力,保障行车安全。我们将重点讨论卷积神经网络(CNN)在特征提取、目标检测和语义分割等方面的应用,以及这些技术是如何优化自动驾驶汽车对周围环境的理解和反应。
|
4天前
|
机器学习/深度学习 传感器 人工智能
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第29天】 本研究聚焦于深度学习技术在自动驾驶系统中的核心应用之一——图像识别。文章首先概述了自动驾驶技术的发展趋势,随后深入探讨了深度学习算法,特别是卷积神经网络(CNN)在处理和解析道路图像方面的有效性。通过对比传统机器学习方法,本文揭示了深度学习在准确性、速度及自适应能力方面的优势,并提出了一套优化策略,以增强模型在真实世界复杂多变环境下的性能。最后,文章讨论了当前技术面临的挑战和未来的发展方向。