服务器配置深度学习环境:Tensorflow2.4.1 + Keras2.4.3 + Cuda11.2 + Cudnn8.0_onePoetry的博客-程序员秘密_服务器配置tensorflow环境

技术标签: tensorflow  深度学习  服务器  

服务器配置深度学习环境:Tensorflow2.4.1+Keras2.4.3+Cuda11.2+Cudnn8.0,记录了配置过程中一些坑,希望帮助到大家


开端

linux服务器虚拟环境安装tensorflow-gpu 2.4.1 + Keras2.4.3 + cuda11.2 + cudnn8.0的踩坑记录:

折腾了近个把月(似乎来回差不多七次),在各大浏览器寻找配置环境的线索,去解决版本匹配带来的很多问题。在安装好Tensorflow后,有了这个教程,但它只是一个方法,并非万能的解答。


选择自己需要的环境

查询TensorFlow-GPU与CUDA cudnn Python版本关系:https://tensorflow.google.cn/install/source_windows?hl=en#gpu
tensorflow与python、cuda对应版本

查询显卡支持的Cuda版本

驱动版本可以通过命令查询:

nvidia-smi

在这里插入图片描述
注意事项:

  • Cuda的选择根据自己的显卡要求,不能高于硬件支持的版本。
  • 服务器是RTX3090系列,很矫情,不支持Cuda11以下的版本,因此选择前应该查询清楚。
  • Tensorflow2.4以下也不支持Cuda11以上,需要严格适配。
  • 如果在服务器上跑实验,一定是只安装Tensorflow-gpu版本的,如果安装了Tenesorflow就会出现实验运行在内存上的乌龙。
  • 个人一些心得:因为本次实验需要Tensorflow2.3.0的环境,但是服务器的显卡要求Cuda版本过高,无法适配。为了实验正常运转,选择了高一点点的Tensorflow2.4.1的版本,改动应该不会很大。有一些赌的成分,配环境也是一种实验过程。

根据以上条件选择了Tensorflow2.4.1 + Keras2.4.3 + Cuda11.2 + Cudnn8.0,该环境目前没有问题。

Anaconda使用

1.安装Anaconda

选择Anaconda对每个项目所需环境进行管理,是一个很好的习惯。安装步骤可以参考如下教程:

最新Anaconda3的安装配置及使用教程(详细过程)

2.创建新环境

创建一个名为py38的新环境,并且指定python版本是3.8 不用管是3.8.x,conda会为我们自动寻找3.6.x中的最新版本,当然也可以自己指定具体版本。

打开Anaconda Prompt,开始创建新环

conda create -n py38 python=3.8

这里安装的速度比较快是因为之前安装Anaconda时设置了Anaconda仓库的镜像,因为Anaconda.org的服务器在国外,所以需要安装packages时,会发现conda下载的速度经常很慢,可以使用清华TUNA镜像源,需要将其加入conda的配置即可。

# 添加Anaconda的TUNA镜像
conda config --add channels https : //mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

3. 激活环境

conda activate + 需要激活环境的名称,就进入该环境了

conda activate py38

退出当前环境是

conda deactivate

4.列出指定环境下安装的包

conda list

5.删除指定环境

conda env remove -n py38 

安装Cuda与Cudnn

安装cuda11.2

conda install cudatoolkit=11.2

安装cudnn8.0

conda install cudnn=8.0

安装Tensorflow-gpu

安装tensorflow2.4.1直接使用pip install的方式,不过tensorflow包一般比较大,直接安装比较慢,可以添加镜像

pip install tensorflow-gpu==2.4.1 -i https://pypi.douban.com/simple/

再次强调:如果安装了tensorflow-gpu就不用再安装tensorflow,否则程序会再cpu上运行。


总结

很多错误都是自己尝试出来的,在这个过程中,和搜索引擎建立了深厚的友谊。
希望该文章能够帮助到您,如果没有,我也不接受指责与批评,因为我脾气不是很好。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Jeremy_Deng/article/details/124845112

智能推荐

python 爬虫基础 Xpath lxml中etree.html和etree.parse有什么区别_RooKiChen的博客-程序员秘密_etree.parse和etree.html

1.etree.parse直接接受一个文档,按照文档结构解析(本地文件)test.html:<html> <body> <ul> <li><a href="http//www.baidu.com">百度</a></li> <li><a href="http//www.sougou.com">搜狗</a></l

# Cobalt Strike:使用已知的私钥解密流量-Part 1_爱你'非我莫属。的博客-程序员秘密

博客系列:Cobalt Strike:流量解密Cobalt Strike:使用已知的私钥解密流量-Part 1(当前部分)Cobalt Strike: 使用已知的私钥解密流量 - Part 2Cobalt Strike: 使用进程内存解密流量 - Part 3Cobalt Steike: 解密被掩盖的流量 - Part 4Cobalt Strike: 解密DNS流量 - Part 5我们发现6个流氓软件Cobalt Strike的私钥,可以用来将C2网络流量进行解密Co

数据结构排序-------插入排序(C,Java实现)_楠哥学IT的博客-程序员秘密

 1、插入排序简要概述  它的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。 2、插入排序图解  3、代码实现public class test { public static void main(String[] args) { int array[] = new

NFS共享存储服务安装_huryer的博客-程序员秘密_安装nfs网络共享服务的步骤

NFS是一种基于TCP/IP 传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源NAS存储: NFS服务的实现依赖于RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在Centos 7系统中,需要安装nfs-utils、 rpcbind 软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。手动加载NFS共享服务时,应该先启动rpcbind, 再启动nfs。nfs端口:2049R

android开发环境的搭建!浅谈Android消息机制原理,重难点整理_普通网友的博客-程序员秘密

开头技术的发展产生了程序员这个职位,从这些年各大互联网公司曝光的一些员工收入水平来看,程序员的工资还是相对比较高的,可是我们在互联网上还听到了另外一种声音,很多程序员想转行,特别是大龄程序员,这可能会令很多人纳闷。为什么工资这么高还想转行呢?其实他们也很无奈,从下面几点可以看得出来。Android高级知识点一、Android性能优化1.描述一下android的系统架构?2.Android线程间通信有哪几种方式3. 如何避免OOM异常4.Android程序运行时权限与文件系统权限的区别?5.H

HCIA学习笔记#4_沙漏hx的博客-程序员秘密

第四天补充遗漏的点:暂无路由

随便推点

【转】使用红雪越狱iPhone 4.3.3教程_Surenon的博客-程序员秘密

转自:http://apple.178.com/201105/98676561502.htmlDev-Team已经发布了红雪0.9.6rc19完美越狱工具。下面以Windows版为例附上图文教程:注意事项为了防止万一,请您使用官方固件恢复再按照本教程操作(如果您的4.3.3没有进行越狱可以忽略这一步)。官方固件恢复教程 越狱需要使用4.3.3最新固件,固件下载大全...

Coursera - Algorithm (Princeton) - 课程笔记 - Week 4_支锦铭的博客-程序员秘密

Week 4优先队列 Priority Queues接口和基本实现 APIs and Elementary Implementations集合(Collections):插入和删除元素的基本数据结构,不同的集和区别在于如何选择下一个删除的元素优先队列:对于全序的数据类型,其返回最大或者最小的元素API如下:(注意,要求泛型类型必须是Comparable的)public class ...

多测师肖sir_高级金牌讲师_第2个月第17讲app搭建之安装(001)_多测师肖sir的博客-程序员秘密_在线安装python操作客户端

我们主要讲解app自动化环境的搭建以及定位和app测试================================================================app原生+H5===================================================================(一)app测试手工app测试和自动化app测试手工app测试:就是点的地方不同,一个在bs结构上点,在cs结构上点(或模拟器或H5)自动化app测试:用代码来代替

【特征检测】Harris角点检测中的数学推导_lbaihao的博客-程序员秘密

简介本文主要是对Harris角点检测的数学公式进行推导,更加深入的掌握原理性的理论知识。预备知识椭圆的矩阵方程表示在高中课本中,我们学习到标准椭圆及其方程(如下图所示):其实,矩阵在运算中使用非常广泛,现将上述标准方程写成矩阵形式(方便接下来的处理):椭圆半轴与系数矩阵的关系         一个nxn的矩阵,

ROM测试工程师岗位考核标准_三千红尘客的博客-程序员秘密_测试工程师试用期考核标准

1.出勤率及工工作时长 (测试部评审委员会评分)不迟到不早退(出勤一天满9小时)自主适当加班完成任务加班时间用于提升自我,输出有效文档2.任务完成情况(1)任务量(组长)每月正常完成分配的任务每月平均每日相当于1.2人工作分量每月平均每日相当于1.5人工作分量(2)用例执行质量(测试部评审委员会评分)用例规范执行,非PASS项需要清晰备注用例不规范处有建议用例执行完成无空白,专项有报告,有标注主动...

MapReduce中使用字符串拼接导致的问题_快乐程序员的博客-程序员秘密_reduce字符串拼接

今天在帮业务方优化mapreduce作业时遇到一个用字符串拼接的问题。

推荐文章

热门文章

相关标签