error: Ignore above cudart dlerror if you do not have a GPU set up on your machine.

阅读: 评论:0

error: Ignore above cudart dlerror if you do not have a GPU set up on your machine.

error: Ignore above cudart dlerror if you do not have a GPU set up on your machine.

TensorFlow_CPU/GPU

  • 错误描述
  • 错误原因
  • 解决方法
    • 解决方法1:

错误描述

具体错误描述:

W tensorflow/stream_executor/platform/default/dso_loader:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
I tensorflow/stream_executor/cuda/cudart_stub:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

意思是说没有找到cuda的配置文件,如果电脑没有GPU则忽略此错误提示并退回到CPU版本。

错误原因

在网上搜索了一些对此问题原因的解释,其大致原因是在安装TensorFlow时使用了以下命令:

pip install tensorflow

最新版的TensorFlow默认安装CPU和GPU两个版本,GPU不能运行时退回到CPU版本。所以在运行时会自动检测是否有GPU,如果没有则报错并切换至CPU运行

解决方法

解决方法1:

重新安装TensorFlow的CPU版本:打开anaconda prompt输入以下命令
卸载当前TensorFlow

pip uninstall tensorflow

如果用的是CPU,则安装TensorFlow的CPU版本,默认最新版本

pip install tensorflow_cpu

由于使用的是国外镜像,下载速度很慢,可能会中断,大家可以自行搜索安装包。

如果使用的是GPU则使用下面的方法解决:

先来排查错误,显示“cudart64_110.dll not found”,那是因为安装的cuda版本没有“cudart64_110.dll”

因此我们需要手动将“cudart64_110.dll”添加到coda的bin目录中去。

详细步骤请参考链接:tensorflow-gpu版本使用时报错,各种dll文件找不到

方法比较多,可以多尝试一下,因为小编用的CPU所以暂时就不详细描述了。提供一些实用的解决方案,尽一份薄力!

Tensorflow无法调用GPU,报错Could not load dynamic library ‘cudart64_100.dll‘‘cublas64_100.dll‘…

解决方法2:
如果使用的是CPU,可以采用这种方法,在程序开头中加入以下代码:

#加入忽略
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

对于这两行代码什么意思我们还是简单了解一下:
参考链接: 从源码求证tensorflow中os.environ[“TF_CPP_MIN_LOG_LEVEL”]的值的含义.

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '0'  # 0也是默认值,输出所有信息
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '1'  # 屏蔽通知信息
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'  # 屏蔽通知信息和警告信息
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'  # 屏蔽通知信息、警告信息和报错信息

有点懵逼,我们看一下源码:

namespace tensorflow {
const int INFO = 0;           //base_logging::INFO;
const int WARNING = 1;        //base_logging::WARNING;
const int ERROR = 2;          //base_logging::ERROR;
const int FATAL =3;           //base_logging::FATAL;
const int NUM_SEVERITIES = 4; //base_logging::NUM_SEVERITIES;

应该很清楚了:

  1. log信息一共有四个等级,按重要性递增为:
    INFO(通知) < WARNING(警告) < ERROR(错误) < FAFAL(致命的);
  2. 值得含义:不同值设置的是基础log信息(base_loging),运行时会输出base等级及其之上(更为严重)的信息。具体如下:
base_loging屏蔽信息输出信息
“0”INFOINFO + WARNING + ERROR + FATAL
“1”WARNINGINFOWARNING + ERROR + FATAL
“2”ERRORINFO + WARNINGERROR + FATAL
“3”FATALINFO + WARNING + ERRORFATAL

注意:
1、“0”为默认值,输出所有信息
2、设置为3时,不是说任何信息都不输出,ERROR之上还有FATAL

本文发布于:2024-02-05 06:50:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170726691964095.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:cudart   Ignore   error   dlerror   machine
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23