环境:Anaconda3,ubuntu18.04,RTX3080ti,python3.7

RTX3080ti显卡是当前市面上比较新的,算力比较强的显卡,且这类显卡采用了安培架构仅支持cuda11.x及以上版本。关于tf-gpu,cuda,cudnn间的对应关系,我们可以查看:从源代码构建  |  TensorFlow
关于驱动和cuda,cudnn的对应关系,我们可以查看:Release Notes :: CUDA Toolkit Documentation

##问题1:我的30系列卡的驱动为450.x.x或更高,按照向下兼容的道理,那我是不是可以使用cuda10.x?

正常答案是不能,因为正常情况下30系列的卡只支持cuda11.x(非正常的答案也有,不过安装起来比较麻烦,这里我们只讨论正常情况,下面会给出这种情况的链接)。这个问题也是困扰我的问题,因为我一直秉持着向下兼容的道理,相信我的3080ti支持cuda10.x,我在几次测试时发现,行不通。我们都知道,在使用conda安装tf-gpu的时候,会自动安装对应的cudatoolkit和cudnn,这也着实为我们省了不少麻烦。但是在安装时发现conda可以search到的最高tensorflow-gpu版本为2.4.1,而其对应的cudatoolkit是10.1.183,这种办法装好的环境,在使用tf.test.is_gpu_avaliable()时打印出的是True,但在实际跑代码时,会卡在奇怪的地方:

然后报最下面的一行错,可以看到,cuda和cudnn虽正常打开,但是并没办法使用,就是因为30系列的卡只支持cuda11.x,这也就意味低于tf-gpu=2.x版本的代码是不能运行的,tf-gpu=1.x的版本更不可以。怎么解决呢,继续看问题2和3。
PS:非正常情况,因为Geogle不再维护tf1.x,但是Nvidia公司有在维护一款tf-gpu=1.15.x,且可以运行在30系列的卡,该方法需要科学上网和指定的ubuntu版本(ubuntu20.x),因此我就没有尝试,有兴趣的可以一试,链接:
https://blog.csdn.net/wu496963386/article/details/109583045

##问题2:我虚拟环境中的tensorflow-gpu如果不使用conda自动安装的cudatoolkit和cudnn,直接使用大环境的CUDA和cudnn(前提是你的大环境已经配置好)?

答案是可以,因为conda可以search到的最高tensorflow-gpu版本为2.4.1,而其对应的cudatoolkit是10.1.183,我们的30卡不可以直接用。由于该tf-gpu和cudatoolkit,cudnn是捆绑安装的,且卸载的时候是捆绑卸载的,所以我们不能使用conda来装tf-gpu了。将原来conda装的tf-gpu卸载,会一并卸载cudatoolkit和cudnn。如果环境中没有cudatoolkit和cudnn,就会使用大环境中的cuda和cudnn,使用pip在虚拟环境中安装tf-gpu,由于我的大环境cuda版本为11.2,因此我下载了tf-gpu=2.6.1。不少同学会问,可是我的代码时1.x的怎么办,接着看问题3。

##问题3:tf2.x和tf1.x相比,很多函数都变了,也舍弃了很多函数,怎么办?

根据问题1,我们已经知道,tf-gpu=1.x的版本正常是无法在30系列的卡上运行的,想调显卡就必须使用tf-gpu=2.x,因此我们需要针对修改源码,以让其在tf-gpu=2.x下运行,主要涉及的改动:

1.在import tensorflow 时使用:

import tensorflow.compat.v1 as tf ###
tf.disable_v2_behavior()

这种方式import的tf不包含contrib,因为tf2.x丢弃了这个包

2.一些使用contrib包的初始化方式及函数:

tf1.x:   tf.contrib.layers.xavier_initializer()-->tf2.x:   tf.keras.initializers.glorot_normal()
tf1.x:   tf.contrib.layers.l2_regularizer(0.01)) -->tf2.x:   tf.keras.regularizers.l2(0.01))

大家在修改时,要根据出现的报错修改,改动应该不会涉及太多。

最后给大家说一下,我当前的配置:Nvidia-driver:465.31,tf-gpu=2.6.1,cuda=11.2(11.2.142), cudnn=8.1.1

最后还有一个问题:根据从源代码构建  |  TensorFlow这里查询到的tf-gpu=2.4.0应该是搭配cuda=11.0的,为什么conda里会搭配cudatoolkit=10.1.x呢?应该是该网址给出的是已知能用的搭配,并不是所有搭配,想尝试conda这组搭配可不可行的,可以使用20系列显卡,安装搭配cuda10.1的驱动。

记录之使用3080ti运行tensorflow-gpu=1.x版本的源码相关推荐

  1. 备注: ubt 16.04 安装 gtx 1060 --- 成功运行 tensorflow - gpu

    ---------------------------------------------------------------------------------------------------- ...

  2. 基于TensorFlow训练花朵识别模型的源码和Demo

    基于TensorFlow训练花朵识别模型的源码和Demo 转发来源: https://blog.csdn.net/Anymake_ren/article/details/80550684 下面就通过对 ...

  3. jdk javac运行不了_Intellij IDEA搭建jdk源码阅读环境

    一.找到源码位置 直接找到jdk安装的目录,会看到src.zip的压缩包,这里面就是jdk的源码,例如下图: 在这里解压. 第一次尝试建议使用9或更早版本jdk的源码,否则易造成卡死. 二.Intel ...

  4. anaconda tensorflow 2.3_安装anaconda amp;源码安装lightgbm,xgboost

    一.下载anaconda安装包 进anaconda官网下载自己系统对应的安装包https://www.anaconda.com/ 二.安装anaconda 三.创建快捷键 安装完成后点击windows ...

  5. 在windows下运行Felzenszwalb的Deformable Part Model(DPM)源码voc-release3.1来训练自己的模型

    我的环境 DPM源码版本:voc-release3.1 VOC开发包版本:VOC2007_devkit_08-Jun 使用的训练数据集:VOC2007                         ...

  6. tensorflow 2.0 Layer定义的源码分析

    一直不太懂tensorflow 2.0的层的操作,所以跑去看了下源码,其实也不难,如果对python比较了解的话,自己去看下源码也很快就能理解了. tensorflow 2.0中的api都是使用了ke ...

  7. linux运行软件代码,Linux软件安装-详细源码安装过程

    1.简介 软件的安装是linux学习时的重中之重,*nux上重要思维哲 学组合若干小功能进而成为一个可用可维护的系统平台.那么在 操作系统构建完成之时,除非内核等支持系统必需软件之外,可 拓展可维护的 ...

  8. python 深度学习源码_「深度学习」用TensorFlow实现人脸识别(附源码,快速get技能)...

    本文将会带你使用python码一个卷积神经网络模型,实现人脸识别,操作难度比较低,动手跟着做吧,让你的电脑认出你那帅气的脸. 由于代码篇幅较长,而且最重要的缩进都没了,建议直接打开源码或者点击分享-& ...

  9. 含文档+PPT+源码等]精品基于PHP实现的商城电商网站[包运行成功]购物商城计算机毕设项目源码

    目录 一.项目介绍 二.文档截图 三.运行截图 四.源码获取 一.项目介绍 [含文档+PPT+源码等]精品基于PHP实现的商城电商网站>该项目含有源码.文档.PPT.配套开发软件.软件安装教程. ...

最新文章

  1. 【2017下集美大学软工1412班_助教博客】结对编程1——模块化
  2. python 特性和方法同名_Python语言特性的梳理
  3. pcb外观维修_电路板常用维修技巧,送给从事维修工作的兄弟姐妹们
  4. 特斯拉提升安全监控等级,推出“哨兵模式”
  5. C#性能优化:延迟初始化LazyT
  6. vs编译应用程序不依赖运行vs环境
  7. php 负载监控_php记录服务器负载、内存、cpu状态的代码
  8. 现代软件工程讲义 8 稳定阶段 (测试的计划和执行)
  9. Java:双向链表反转实现
  10. 局域网不能进入别人的共享
  11. Java基本开发环境搭建(适合第一次使用)
  12. 【大话数据结构-数据结构绪论①】
  13. Win10锁屏壁纸图片保存
  14. 7个免费的在线音频编辑网站推荐
  15. 教你用三种方式打造一款简单的网络播放器
  16. 国际市场营销知识框架图_打包送!120页中新史笔记+21张框架图+表格!你需要的中新史资料都在这!...
  17. android键盘坏了怎么办,手机虚拟键盘失灵怎么办
  18. 创建型设计模模式---原型模式
  19. 如何让实景三维倾斜摄影机载LiDAR三维激光扫描车点云数据顺畅服务于高速公路市政道路BIM改扩建正向三维可视化设计?高效建立精准地表三维模型DEM,让勘测与设计专业更直接地完成三维设计工作。
  20. 一条命令在 Ubuntu 中安装所有基本的媒体编解码器

热门文章

  1. Eclipse 中切换不同的JDK设置
  2. C# IO操作(五)文件的递归加载
  3. js入门系列演示·数组
  4. 我设计的简单事务控制
  5. 牛客网(剑指offer) 第十二题 数值的整数次方
  6. 软件测试作业4:测试要素
  7. 中国大学MOOC 计算机组成原理第3章 测试
  8. 树莓派搭建Django服务器通过远程访问
  9. Exhaustive Search Aizu - ALDS1_5_A
  10. 【机器视觉】 dev_set_lut算子