您的位置:首页 > 产品设计 > UI/UE

tensorflow安装问题:No module named pywrap_tensorflow_internal&failed call to cuInit:CUDA_ERROR_NO_DEVICE

2017-08-30 20:11 881 查看
解决方案:

问题1:回到主目录,重新运行代码。

问题2:

指定gpu时使用如下任意一种方式,而不是
os.environ['CUDA_VISIBLE_DEVICES'] = "1"


# 方法1
import os
os.environ['CUDA_VISIBLE_DEVICES'] = "0"
# 方法2,在创建session时使用这句代码:
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))


解决方案直接贴在上面了。下面的内容是遇到问题的原因,和解决问题时的思路,有需要的可以看看,不需要的直接按照上面的方法就可以。有问题欢迎交流。

本人电脑配置:

显卡:gtx1070; ubuntu1404; 驱动nvidia-375; cudnn6.0; cuda8.0;

在Ubuntu下配置tensorflow-gpu的时候遇到了很多问题,特此记录,以飨各位。

1.No module named pywrap_tensorflow_internal

这个问题一般都是理由bazel编译tensorflow源代码安装的时候出现的错误。

这个问题第一次遇到的时候在网上百度到了好几个页面,都说是cuda驱动版本太低导致的,但显然我的配置不太可能是因为这个原因,重装了一次tensorflow。第二次遇到的时候,仔细看了下错误提示,发现错误提示中给出了一个链接,提示到tensorflow官网中查看解决方案。在这个页面的最下面看到了这个 ,这个页面中给出了错误原因,是因为我们在~/tensorflow 下编译完tensorflow后直接运行了Python代码,所以Python解释器调用的Python是tensorflow源码中的,而不是我们自己安装的版本,因此就不会有这个模块。

解决方案就是cd .. ,即退出当前目录回到主目录下,然后再运行Python代码,这样就不会报错了。

failed call to cuInit: CUDA_ERROR_NO_DEVICE

这个问题出现在我在运行这段测试代码的时候:

import tensorflow as tf
import os
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
os.environ['CUDA_VISIBLE_DEVICES'] = "1"
sess = tf.Session()
print (sess.run(c))
sess.close()


严格来说这其实只是个警告,在出现这个警告时,代码仍然会正常运行,但是是在没有使用gpu的情况下。所以如果不解决这个问题,在运行代码时会很浪费时间。

这个问题也是困扰了我很久,因为这个问题重装了一次系统。因为在进入python解释器后,无论是逐行输入或者是通过exec(open(‘test_gpu.py’).read())方法运行同样的代码都不会报这个错误,但是在命令窗口中直接python test_gpu.py则会出现这样的问题,出现这种情况一度让我很懵逼,不确定是不是自己的cuda有问题,按理说有问题的话在python解释器中应该也出现同样的问题才对。

网上的思路是cuda没有装好,也有说只有自行编译的tensorflow才能使用cuda,否则就会出现这样的问题。本着试一试的态度我尝试了自行编译的方案,但是问题依旧。因此我不得不重新思考到底是哪里出了问题。

因为在另一段代码中也是使用这句代码指定gpu的设备
os.environ['CUDA_VISIBLE_DEVICES'] = "1"
,所以我一直以为1就是指第一块gpu(我只有一个gpu),在百般无果后,我尝试着将”1”改为”0”,重新运行,发现可以正常调用gpu了。

思考与总结:

遇到问题不能慌,也不能觉得肯定是自己在哪个步骤出现操作错误才会导致问题。

一定要静下心来捋一捋头绪,去思考问题出现的原因。

要重视错误提示,这远远要比百度上的各种劣质文章要靠谱的多。

有问题多看stackoverflow。

多动手多尝试,不要怕,大不了重来一遍就当练手了。

以上,欢迎交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐