Anaconda 中的 Tensorflow-Gpu 和 Cuda 驱动程序存在问题

Posted

技术标签:

【中文标题】Anaconda 中的 Tensorflow-Gpu 和 Cuda 驱动程序存在问题【英文标题】:Problem with Tensorflow-Gpu and Cuda drivers in Anaconda 【发布时间】:2020-03-13 01:52:48 【问题描述】:

Tensorflow-GPU 存在以下问题。在尝试为深度学习任务设置 gpus(在 Jupyter 中)时,我收到以下错误:

InternalError                             Traceback (most recent call last)
<ipython-input-3-a08c39e19f9e> in <module>
     20     for gpu in gpus:
     21       tf.config.experimental.set_memory_growth(gpu, True)
---> 22     logical_gpus = tf.config.experimental.list_logical_devices('GPU')
     23     print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
     24   except RuntimeError as e:

~\Anaconda3\envs\tens-gpu\lib\site-packages\tensorflow_core\python\framework\config.py in list_logical_devices(device_type)
    345     List of LogicalDevice objects
    346   """
--> 347   return context.context().list_logical_devices(device_type=device_type)
    348 
    349 

~\Anaconda3\envs\tens-gpu\lib\site-packages\tensorflow_core\python\eager\context.py in list_logical_devices(self, device_type)
   1150   def list_logical_devices(self, device_type=None):
   1151     """Return logical devices."""
-> 1152     self.ensure_initialized()
   1153 
   1154     devices = []

~\Anaconda3\envs\tens-gpu\lib\site-packages\tensorflow_core\python\eager\context.py in ensure_initialized(self)
    490         if self._default_is_async == ASYNC:
    491           pywrap_tensorflow.TFE_ContextOptionsSetAsync(opts, True)
--> 492         self._context_handle = pywrap_tensorflow.TFE_NewContext(opts)
    493       finally:
    494         pywrap_tensorflow.TFE_DeleteContextOptions(opts)

InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version

我的 Cuda 版本是 Cuda 10.0.130,cudnn 是 7.6.4,而我有 Intel UHD Graphics 620 和 NVIDIA GeForce MX150 gpus。驱动程序已更新到“优化”版本,我真的不明白什么不起作用。你能帮我吗,因为我已经尝试了我在网上找到的所有东西? 提前谢谢你

【问题讨论】:

您需要为您的 GPU 安装最新的驱动程序。跟随向导here 它似乎有效,现在我在运行模型时仍然遇到一些问题(在 Spyder 中我得到“2019???????? 16:59:40.664968: W tensorflow/stream_executor/platform /default/dso_loader.cc:55] 无法加载动态库 'cudart64_100.dll'; dlerror: cudart64_100.dll not found",而在 Jupyter 中它更冗长,但如果它取决于 GPU 部分,则 Idk 【参考方案1】:

这个错误的原因是你安装的CUDA Toolkit版本和python包CUDA toolkit的版本不匹配,通常作为Tensorflow GPU的依赖安装

运行 CUDA 应用程序需要系统至少具有一个支持 CUDA 的 GPU 和一个与 CUDA 工具包兼容的驱动程序。请参考下面的详细信息

无法加载动态库“cudart64_100.dll”; dlerror: 找不到 cudart64_100.dll

最简单的修复方法是安装最新的NVIDIA GPU Computing Toolkit,因为如果不存在,您将丢失“cudart64_100.dll”库。

【讨论】:

@Filippo Fedeli,如果它回答了您的问题,请您接受并投票赞成答案。谢谢

以上是关于Anaconda 中的 Tensorflow-Gpu 和 Cuda 驱动程序存在问题的主要内容,如果未能解决你的问题,请参考以下文章

anaconda怎么运行python

获取安装在 Anaconda 中的软件包列表

Pycharm/Anaconda/Scipy 中的 DLL 加载失败

不重装anaconda升级base中的Python版本

Anaconda 中的 FancyImpute 安装

如何在 macOS 的 Spyder (Anaconda) 中正确执行 Graphviz 中的“点”?