首页 > 其他分享 >安装 TensorFlow 遇到的问题

安装 TensorFlow 遇到的问题

时间:2022-11-20 15:33:39浏览次数:39  
标签:遇到 conda CUDA 版本 GPU TensorFlow 安装

最后修改:2022-11-20

安装 TensorFlow 遇到的问题

环境
  • 系统:Ubuntu 20.04 LTS
  • 虚拟环境:Anaconda
目标
  • 在 Anaconda 虚拟环境中能正常使用 TensorFlow
  • 可以使用 GPU 计算
  • 可以使用 TensorRT
问题 - 无法使用 GPU 计算
安装正确的 Build 版本

使用命令 conda install tensorflow 安装后,TensorFlow 已经可以使用了,但如果使用 API tf.test.gpu_device_name() 去查询 GPU 设备的名称,只会返回一个空字符串,没有正确找到 GPU 设备

出现这种情况的原因可能是 Anaconda 安装的 TensorFlow 就不支持 GPU,虽然谷歌官方在 2.0 版本已经合并了 CPU 版和 GPU 版的 TensorFlow,但 Anaconda 提供的包是由社区维护的版本,仍然是分开的。通过 conda search tensorflow 搜索可以看到,有 3 种 Build 版本:eigen、gpu、mkl,默认安装的可能是 mkl 版本

Anaconda 提供的 TensorFlow 包 Build 版本

如果想安装时指定某个 Build 版本,追加一个等号 = 即可,例如:

conda install tensorflow=2.8.2=gpu_py38h75b8afa_0
重编译的问题

使用 Anaconda 社区维护的 TensorFlow GPU 版本可能会出现从 PTX 到 JIT 的编译过程,类似提示信息 TensorFlow was not built with CUDA kernel binaries compatible with compute capability 5.0. CUDA kernels will be jit-compiled from PTX, which could take 30 minutes or longer 并且是每次启动都会来一遍,耗时几分钟到几十分钟不等,出现这种情况,可以尝试安装谷歌官方提供的版本,如果还存在,就只能选择从源码编译安装 TensorFlow

提示需要从 PTX 到 JIT 编译

安装官方提供的版本

官方提供的预编译版本需要使用 pip 安装,使用命令 pip install tensorflow 安装好后,默认使用 CPU,还是不能使用 GPU 计算,会提示类似 Could not load dynamic library 'libcudart.so.11.0' 的信息,这说明缺少了 CUDA 环境

未找到 GPU

按官方文档的说法,用 GPU 跑 TensorFlow 需要有:

  • 英伟达 GPU 驱动
  • CUDA Toolkit
  • CUPTI,这个是 CUDA 附带的
  • cuDNN

如果是在 Windows 平台,直接使用命令 conda install cudatoolkit cudnn 安装好 CUDA 和 cuDNN 就可以直接使用 GPU 计算了,并且不需要再额外安装 CUPTI。但在 Ubuntu 上,三个组件全部安装后,仍然会提示找不到 GPU。即使不使用社区维护的版本,切换到 nvidia channel 安装,也同样无法使用 GPU。

目前测试可行的方法,只能是将这些 CUDA 包都安装到操作系统中,毕竟按官方文档的说法,并不推荐使用 conda 管理 TensorFlow 的包。如果安装到系统中,使用 deb 包的话,CUPTI 就不用额外安装了,它会被 CUDA Toolkit 附带一起安装。

问题 - 安装 pycuda 失败

安装好 TensorRT 后,一般还会需要再安装 pycuda 包,因为有许多 TensorRT 示例会用到这个包。但使用 pip install pycuda 命令安装后,可能会编译失败,提示 ERROR: Could not build wheels for pycuda, which is required to install pyproject.toml-based projects,往上查找可以看到提示找不到 cuda.h 文件,这是因为之前的 CUDA 是安装在系统中的,在 conda 虚拟环境中安装的 pycuda 不会去系统中寻找,要解决这个问题,要么手动创建链接,要么干脆直接在虚拟环境中再安装一个 CUDA。

编译 pycuda 失败

安装 cudatoolkit 仍然会提示编译失败,英伟达提供了 cuda 和 cudatoolkit 两个包,安装 cuda 包才能解决编译报错的问题,可以用下面的命令,从 nvidia channel 安装 cuda 包:

conda install cuda -c nvidia
总结
  1. TensorFlow 相关的包,还是要尽可能用 pip 而不是 conda 去管理,官方并不推荐使用社区维护的版本
  2. Ubuntu 系统下,CUDA 相关的组件需要安装在系统中,TensorFlow 才能自动找到
  3. pycuda 默认在虚拟环境中寻找 CUDA,不会去系统中寻找

标签:遇到,conda,CUDA,版本,GPU,TensorFlow,安装
From: https://www.cnblogs.com/asnelin/p/16908607.html

相关文章

  • EasyX图形库安装,以及使用样例(vc6.0,vs2013,其他类同)
    ①​​官网下载​​②解压安装(由于自己电脑安装了vc6.0和vs2013以该两个为例,其他都是一样的安装方法)③图形库测试利用图形库画星空(l编译器vs2013)#include<stdafx.h>#......
  • github加速器 FastGithub的安装与使用
    github加速器FastGithub的安装与使用国内访问github网址不稳定,时而可以访问时而访问失败,找到了一个稳定的方法来访问,通过FastGithub加速来进行访问工作原理修改本机......
  • AFL的安装
    一、首先搭建好Linux系统环境。新建一个afl文件夹二、去github上下载镜像或者去官网下载afl源码压缩包tgz文件并解压方法一:从git上直接下载源码,没有git指令就下载方法......
  • Android 学习中遇到的问题
    遇到问题以及解决方案1.androidstudio的gradle版本升级后,gradle版本不匹配解决:还原版本号成对应匹配的版本号2.RecyclerView学习导入依赖一直有问题解决:参考htt......
  • linux系统安装
    实验室设备:电脑实验软件:VMvare workstation、系统isoCentos7.2系统安装:1、新建虚拟机  2、启动虚拟机,安装iso ......
  • VMware安装kali操作系统
    1.虚拟机下载官网下载地址:https://www.kali.org/get-kali/#kali-virtual-machines选择VMware版本下载,并解压2.打开虚拟机选择打开虚拟机,浏览到刚才压缩包解压路径,选......
  • 安装使用metamask并设置 Goerli测试网络
     先安装metamask插件:metamask.io  创建新钱包,输入完密码,并手抄助记词,完成后   设置 Goerli测试网络 ......
  • Linux系列---【linux如何下载rpm离线安装包到本机】
    linux如何下载rpm离线安装包到本机1.问题在生产环境中,一般都是内网集群,服务器都是离线状态,要想安装一个软件,只能提前下载好,然后把安装包导进去,然后手动安装。这里为了解......
  • UOS安装应用程序时闪退
    故障现象:双击deb文件,点击安装后闪退故障分析:软件包安装器有问题,需重装软件包安装器故障处理:进入开发者模式后,终端输入以下命令重装软件包安装器sudoaptreinstal......
  • UOS系统点击安装就消失的bug
    第一步:打开开发者模式第二步:在终端模式卸载器,如下sudodpkg-Pdeepin-dep-installer第三步:安装安装器,如下sudoaptupdatesudoaptinstaller-ydeepin-dep-instal......