cuda10.1安装tensorflow-gpu1.x版本时ImportError: DLL load failed: 找不到指定的模块问题解决

问题描述

最近在跑语义分割的经典网络,SegNet,PSPNet等,在github上发现2017年左右的论文代码都是基于tensorflow1.x的,于是使用anaconda新配置了一个虚拟环境,预期使用keras2.1.5+tensorflow1.13.2,前期的keras等基本包使用pip均可以正常安装,可是tensorflow-gpu在安装后无法导入,提示ImportError: DLL load failed: Failed to load the native TensorFlow runtime根本无法使用,尝试重装cuda,降级cuda到9.2(10.1直接降级到9.2这个真的是败笔,当时如果试一下10.0也许就没那么多事儿了),更换tensorflow1.x版本均失败。

问题定位

在tensorflow官网上看到,tensorflow1.3版本要求的cuda版本是10.0,而我的cuda版本是10.1,理论上高版本应该兼容低版本,可是这个出了问题,因此解决这个问题,有两个方案:

  1. 直接重装cuda为10.0版本,并重装原来的cudnn到相应的匹配版本,这个方法比较麻烦,重装cuda是个技术活儿,并且如果你的显卡最多只支持到cuda9.x的版本,那么此方法是不可行的。
  2. 安装cuda辅助工具cudatoolkit10.0.130,这个工具可以看作是一个精简版本的cuda,tensorflow在调用cuda包时优先找当前环境下的cudatoolkit,再去调用系统中的cuda模块。(也有一说实际上系统的cuda最终还是通过cudatoolkit的方式供虚拟环境调用)

问题解决

定位到了问题,那么解决就变得容易了,一下为使用cudatoolkit的解决方案:
首先使用如下命令在terminal中查询cudatoolkit的版本:

conda search cudatoolkit

回车后看到查询结果为:
cudatoolkit版本
为了和tensorflow1.13.2版本对应,我们需要安装cudatoolkit10.0.130版本,使用以下命令安装:

conda install cudatoolkit==10.0.130

回车后即开始安装,安装完毕后而已正常使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值