centos7 搭建深度学习环境

2023-11-17

本文引用转载自博客园
经实践可用,对原内容进行了删减调整,后续作者理解更深了,可能更新

一、安装NVIDA组件

1. 安装CUDA

CUDA又叫cuda-toolkit,是NVIDA公司专门开发的一套接口,方便利用GPU做高速计算。主流的深度学习框架都面向CUDA做了兼容。CUDA的版本适配非常重要。目前TensorFlow2.0在CUDA上最稳妥的选择是10.0,如果选择10.1以上,有机率不识别GPU,CUDA仓库

  • 下载cuda10.0
    wget https://developer.download.nvidia.cn/compute/cuda/10.0/secure/Prod/local_installers/cuda-repo-rhel7-10-0-local-10.0.130-410.48-1.0-1.x86_64.rpm
  • 下载完,在存放资源包目录下,依次运行以下命令
    • sudo rpm -i cuda-repo-rhel7-10-0-local-10.0.130-410.48-1.0-1.x86_64.rpm
    • sudo yum clean all
    • sudo yum install cuda
    • sudo vi ~/.bashrc
    • 然后在bashrc文件里添加下面配置
      export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}

2. 安装CuDNN

CuDNN是深度神经网络库,和CUDA搭配使用,专门用于深度学习任务
从CuDNN仓库下载适配CUDA版本的安装包,注意认准CUDA10.0版本号,CuDNN仓库

  • 下载CuDNN7.6.5
    wget https://developer.download.nvidia.cn/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.0_20191031/cudnn-10.0-linux-x64-v7.6.5.32.tgz
  • 下载完,在存放资源包目录下,依次运行以下命令
    • tar xzvf cudnn-10.0-linux-x64-v7.6.5.32.tgz
    • sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
    • sudo cp -P cuda/lib64/lib* /usr/local/cuda/lib64
    • sudo chmod a+r /usr/local/cuda/include/cudnn.h
    • sudo chmod a+r /usr/local/cuda/lib64/lib*
    • sudo ldconfig

3. 安装NVIDA显卡驱动

显卡驱动有一个安装原则:装最新的驱动,NIVIDA官网
作者使用的是虚拟存储中的虚拟机,这一步没有安装,后续观察是否有影响

在这里插入图片描述

二、安装深度学习框架TensorFlow

1. 安装Anaconda(此处安装的为Miniconda)

Anaconda是python领域比较流行的包管理器,类似的有virtualenv等。Anaconda的特色是,会自动帮助安装需要的依赖项;并且使用方便,文档详尽。

  • 下载 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
  • 安装 sh Miniconda3-latest-Linux-x86_64.sh

2. 创建虚拟环境并激活

  • conda create --name tensorflow
  • 激活环境 conda activate tensorflow

3. 安装 TensorFlow2.0

  • 请严格输入这条命令,conda会下载安装所需的全部依赖,其中包括cudatoolkit-10.0.130和cudnn-7.6.5,虽然前面安装了这两个包,但是不冲突,可以默认执行;如果在训练神经网络时发现冲突,可以回头再删除这两个包
    conda install tensorflow-gpu==2.0.0

4. 两条常用conda命令

  • 退出当前环境 conda deactivate
  • 查看本机上安装的环境 conda info --env

三、配置远程访问

1. 安装jupyter notebook并配置远程访问

  • conda install jupyter notebook
  • 生成一份默认配置文件 jupyter notebook --generate-config
  • 输入python,进入ipython交互环境,如下图所示输入代码
    在这里插入图片描述注意,中间两步输入密码时不会显示任何字符;记得保存打印结果的字符串 ‘sha…’
  • 开始配置jupyter notebook,打开jupyter的配置文件,路径一般为 /root/.jupyter/jupyter_notebook_config.py
    • vi /root/.jupyter/jupyter_notebook_config.py
    • 修改 c.NotebookApp.ip,填充机器的IP地址 (使用 ip addr 命令查看本机的IP地址)
    • 修改 c.NotebookApp.password, 把保存的密码填充进去,注意格式为 c.NotebookApp.password = u’sha…’
    • 修改 c.NotebookApp.open_browser , 这项默认是True,远程登陆时要修改为 False
    • 将 c.NotebookApp.port =8888 反注释 (可以自己另指定一个端口)

2. 开放端口

推荐使用 iptables 工具

  • 首先要关闭 firewall 服务
    • systemctl stop firewalld.service
    • systemctl disable firewalld.service
    • systemctl mask firewalld.service
  • 安装 iptables 防火墙
    • sudo yum install iptables-services -y
  • 启动 iptables
    • systemctl enable iptables
    • systemctl start iptables
  • 编辑防火墙文件
    • sudo vim /etc/sysconfig/iptables
    • 添加端口(添加下述配置)
    A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
    
  • 重启 iptables 使新端口生效
    • systemctl restart iptables.service
  • 设置防火墙开机启动
    • systemctl enable iptables.service

四、验收

1. 激活tensorflow环境

conda activate tensorflow

2. 开启jupyter notebook (可以添加禁止挂起和后台执行命令)

nohup jupyter notebook &

五、救命稻草

如果在使用 tensorflow 过程中出现Error : Failed to get convolution algorithm,这是因为显卡内存被耗尽了
(按照本文档安装可以排除cuda版本冲突的可能)
可以在代码的最开始输入下面两行配置

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

centos7 搭建深度学习环境 的相关文章

  • 华为三层交换机 配置

    1 拓扑图 2 汇聚层交换机设置
  • 第十四篇 Inception V3——论文翻译

    文章目录 摘要 1 引言 2 通用设计原则 3 基于大滤波器尺寸分解卷积 3 1 分解到更小的卷积 3 2 空间分解为不对称卷积 4 利用辅助分类器 5 有效的网格尺寸减少 6 Inception v2 7 通过标签平滑进行模型正则化 8
  • 【PAT乙级】旧键盘打字

    题目描述 旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在 2 行中分别给出坏掉的那些键 以及应该输入的文字 其中对应英文字母的坏键以大
  • C# System.UnauthorizedAccessException:“对路径“C:\xxx”的访问被拒绝。

    C 程序运行时提示 对路径 C xxx 的访问被拒绝 System UnauthorizedAccessException 对路径 C Excel2007 xlsx 的访问被拒绝 解决办法是 启动visual studio时选择右键 gt
  • System.in.read()问题

    来源 http zhidao baidu com question 74164319 Q System in read 中in是一个字段即静态常量 JAVA帮助文档中 public static final InputStream in 那
  • MAC地址介绍及相关操作

    一 MAC地址介绍 MAC地址简介 MAC Mediun access cntrol 地址 用来表示互联网每一个站点的标识符 采用十六进制数表示 共六个字节 其中 前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码 也称为 编
  • ArcGIS 10.8打开后显示loading document后闪退

    安装ArcGis完成后 打开ArcMap 卡在Loading Document后 闪退的问题 为何为肖的博客 CSDN博客 arcmap加载文档后闪退b同事新装ArcGis10 5后出现这个情况 联想以前编译Qgis时python环境变量的
  • 由一个例子,介绍linux目录的多用户及其读写可执行权限

    例子 查看文件的读写权限以及所属用户 查看目录的读写权限以及所属用户 目录读写权限默认为755即rwxr xr x 文件读写权限默认为744即rwxrr 目录和子目录的读写权限特点 例子 ls ld home1 drwxrwxrwx 39
  • 模板小程序是什么?怎么选择?

    模板小程序是指第三方服务商基于某个模板开发的小程序 这个模板可以根据开发者的需求进行定制 包括页面设计 功能模块 数据管理等方面 开发者可以在模板基础上进行自主开发 实现自己的需求和功能 模板小程序的优点是开发周期短 价格相对较低 一般是直
  • 白夜追凶 :手 Q 图片的显示和发送逻辑

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 作者 陈舜尧 导语 这张图片在快捷发图栏背景是黑色的 为啥发到AIO 会话窗口 里背景就变成白的了 通过一个bug单 对黑白背景问题跟进的过程中发现了手q中很多奇怪的表现 一层层看代码
  • SpringBoot支付宝接入实战

    文章目录 支付宝支付后端实战 基于SpringBoot 一 支付宝支付介绍及接入指引 1 支付宝开放能力介绍 1 能力地图 2 电脑网站支付产品 2 接入准备 1 开放平台帐号注册 2 常规接入流程 3 使用沙箱 二 项目的环境准备 1 框
  • js小案例

    一次性定时器 div class dn div
  • C++,命名空间

    命名空间定义 namespace 命名空间名 变量名 函数 结构体 枚举名 全局引入命名空间 using namespace 命名空间名 部分引入命名空间 using namespace 命名空间名 变量名 注意 表示域限定符 在哪个位置使
  • 【实战加详解】二进制部署k8s高可用集群教程系列二 - ssl 证书简介

    TIP 二进制部署 k8s ssl 证书 转载请注明出处 https janrs com 1 ssl 证书简介 NOTE 在这里只做应用的简介 原理不做介绍 自行谷歌查阅 涉及到安全的 也不整理文档了 自行研究 1 1 什么是 ssl 证书
  • Java实现:寻找水仙花数

    Java实现 寻找水仙花数 文章目录 Java实现 寻找水仙花数 1 问题 2 解决方案 3 实现代码 4 执行结果 5 解决方法说明 穷举法 1 问题 寻找水仙花数 如果一个3位数等于其各位数字的立方和 则称这个数为水仙花数 例如 407
  • 奇异值分解方法求解最小二乘问题的原理

    文章目录 一 奇异值分解 SVD 原理 1 1 回顾特征值和特征向量 1 2 SVD的定义 1 3 求出SVD分解后的U V矩阵 1 4 SVD计算举例 1 5 SVD的一些性质 二 线性最小二乘问题 2 1 最小二乘问题复习 2 2 奇异
  • 最小二乘法拟合圆(Python)

    上文已经对比了三种数据点拟合圆的方法 本文分享最小二乘法的拟合过程 旨在了解如何用Python编程拟合圆 usr bin env python coding utf 8 This program is debugged by Harden
  • Markdown插入视频、mp3音频和gif图的语法

    总所周知 鄙人有一个专栏叫做 差生文具多 里面记录了一些工具的使用方法 以及使用工具时会遇到的一些问题 于是乎 之前就有一个朋友在群里问道 markdown如何插入视频 当时的我不会弄 然后就出现了下面这一幕 明天就弄 开整 然而这篇博客是
  • ARM64_VS2017 动态库 静态库编译 主程序调用环境搭建

    ARM64 VS2017 动态库 静态库编译 主程序调用环境搭建 1 打开Visual Studio Installer安装linux开发环境 2 配置linux环境 工具 gt 选项 gt 跨平台 gt 连接管理器 gt 添加 远程lin
  • mkdir()和mkdirs()区别

    mkdir 和mkdirs 区别如下 mkdirs 可以建立多级文件夹 mkdir 只会建立一级的文件夹 如下 new File tmp one two three mkdirs 执行后 会建立tmp one two three四级目录 n

随机推荐

  • 算法:回文字符串

    要求 给定一个字符串数组 判断出所有的回文字符串 class Solution public List
  • 预备打工人之SystemC学习 (五) 事务级建模库

    预备打工人之SystemC学习 TLM2 0基本概念 松散定时建模 近似定时模型 近似定时建模和松散定时建模的使用 发起者 目标 套接字和桥 DMI和调试传送结构 合并接口和套接字 名字空间和头文件 通用净核类 定义 构造 赋值和析构函数
  • JS栈内存和堆内存详解

    JS变量都存放在内存中 而内存给变量开辟了两块区域 分别为栈区域和堆区域 栈像个容器 容量小速度快 堆像个房间 容量较大 一 基本数据类型和引用数据类型存储方式 js中的数据类型可以分为基本类型和引用类型 基本类型是存在栈内存中的 引用类型
  • 在网页的JS中注入Hook

    在网页的JS中注入Hook Chrome浏览器的overrides的使用 itcoder cn 1 以下为Edge 的示例 1 本地新建一个目录 2 用浏览器关联该目录 选择目录后 浏览器上方会弹出一个横条提示确认 点击允许后即可关联 3
  • Java实现MD5加密及解密的代码实例分享

    原文地址 http www jb51 net article 86027 htm 如果对安全性的需求不是太高 MD5仍是使用非常方便和普及的加密方式 比如Java中自带的MessageDigest类就提供了支持 这里就为大家带来Java实现
  • muduo net库学习笔记4——事件驱动循环EventLoop、runInLoop和queueInLoop及对应唤醒

    首先总体情况 每个muduo网络库有一个事件驱动循环线程池 EventLoopThreadPool 线程池用在事件驱动循环上层 也就是事件驱动循环是线程池中的一个线程 每个TcpServer对应一个事件驱动循环线程池 每个线程池中有多个事件
  • jupyter notebook新建python3空白_jupyter notebook 启动出现404 302,web空白页无反应

    原来装过官网的python2 7和3 6 在这基础上装了anaconda3 启动jupyter notebook时出现404和302 复制url到猎豹和IE浏览器都没有反应 token复制也不行 后来卸载了官网的python2 7和3 6也
  • 区块链基础:交易模型解读

    1 比特币系统UTXO解读 UTXO unspent transaction output 未花费的交易输出 这是比特币交易中核心概念 UTXO是比特币拥有者的公钥锁定的一个数字 实际是是拥有者的公钥加密的数字 只有拥有者的私钥才能解开 U
  • go语言常用标准库(Time)

    go语言常用标准库 Time 1 Time 时间和日期是我们编程中经常会用到的 本文主要介绍了Go语言内置的time包的基本用法 1 1 1 time包 time包提供了时间的显示和测量用的函数 日历的计算采用的是公历 1 1 2 时间类型
  • 线性代数的本质(十一)——复数矩阵

    文章目录 复数矩阵 附录 极大线性无关组 向量叉积 复数矩阵 矩阵 A A A 的元素 a i j
  • 斐波那契数列的递归与非递归

    斐波那契数列 F n 1 n 0 1时 F n F n 1 F n 2 n gt 1时 1 递归实现 int Fib int n if n 1 n 0 return 1 return Fib n 1 Fib n 2 时间复杂度 O 2 n
  • idea常用的快捷键和常用设置

    目录 1 常用idea快捷键 2 查找相关快捷键 3 常用项目快捷键 设置字体 字体文本设置 切换主题 字符编码设置 IDEA模板 idea 目录分层 1 常用idea快捷键 1 全选 CTRL A 最简单 几乎所有的编辑器都有此功能 2
  • UISearchBar 和 UISearchDisplayController的使用

    之前比較少用UISearchBar 和 UISearchDisplayController 最近閱讀了一些有關資料 簡單做個筆記 1 UISearchBar 和 UISearchDisplayController 在IB中是可以直接使用的
  • Xshell连接VMware CentOS7

    https blog csdn net weixin 43593086 article details 90247751
  • Android屏幕适配

    一 一些概念的理解 屏幕尺寸 屏幕的对角线 如一台小米电视49寸说的就是电视对角线长度是49寸 1英寸 2 54厘米 分辨率 1920 1080指纵向1920个像素点 横向1080个像素点 1280 720同理 屏幕像素密度 DPI
  • 跟我说回家,却还在外面鬼混,python程序员教你用微信给对方定位

    跟我说回家 却还在外面鬼混 其实很多情侣之间存在很多这样的信任问题 不相信他 去查岗 可能会恶化两人之间的关系 比如跟我说回家了 但是想知道他是否真的回家了 打电话 打视频查岗吗 今天教大家一个利用微信来给对方定位的黑科技 实现方法 其实实
  • python连接clickhouse,并实现对表内数据的增删改查

    基本信息 clickhouse 基本介绍可以参考 https clickhouse com docs zh python 连接 clickhouse 可以参考 https clickhouse com docs en integration
  • 网络 链路层

    数据链路层是计算机网络的底层 主要负责相邻设备之间的数据帧传输 链路层就是负责每一个相邻结点之间的数据传输 但是相邻设备之间也需要描述识别 主要是因为每一个设备都有可能有多个相邻的设备 这种识别在链路层中是通过MAC地址来实现的 MAC地址
  • C++ 类型转换

    文章目录 c语言中的类型转换 为什么C 需要四种类型转换 C 强制类型转换 static cast reinterpret cast const cast dynamic cast c语言中的类型转换 在C语言中 如果赋值运算符左右两侧类型
  • centos7 搭建深度学习环境

    本文引用转载自博客园 经实践可用 对原内容进行了删减调整 后续作者理解更深了 可能更新 一 安装NVIDA组件 1 安装CUDA CUDA又叫cuda toolkit 是NVIDA公司专门开发的一套接口 方便利用GPU做高速计算 主流的深度