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.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
I tensorflow/stream_executor/cuda/cudart_stub.cc: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” INFO INFO + WARNING + ERROR + FATAL
“1” WARNING INFO WARNING + ERROR + FATAL
“2” ERROR INFO + WARNING ERROR + FATAL
“3” FATAL INFO + WARNING + ERROR FATAL

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

你可能感兴趣的:(OpenCV,&,TensorFlow,常见错误解决,tensorflow,深度学习,python)