2017-06-16
将:
sess.run(tf.global_variables_initializer())
拆分为两句话:
init=tf.global_variables_initializer()
sess.run(init)
问题莫名不见了!!!
-------------------------------------------------------------------
1 安装cuda 8.0 ,自动安装显卡驱动
2 安装anacodna
3 安装 tensorflow1.2 pip install tesorflow-gpu --upgrade
中间出现 “”无法拷贝”,重启或注销 之后即可
4 下载 cuDNN 50/5.1/6.0,解压后 拷贝到
问题:
1 6.0 无法 在 python里 import tensorflow
2 5.0/5.1可以,也可以执行 简单语句
import tensorflow as tf
hello = tf.constant(‘hello’)
sess = tf.Session()
print(sess.run(hello))
但运行tesorflow 的sample :mnist_deep.py要报异常,异常信息显示是 显卡驱动nvptxJitCompiler.dll抛出异常。
具体是: sess.run(tf.global_variables_initializer()),当然,如果没有定义variables也没有问题
可以简单以下几句话验证:
import tensorflow as tf
b=tf.Variable(tf.truncated_normal([10,20],))
sess=tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
有人说是: cuda安装时自动更新的显卡驱动太新,与cuda不匹配所致。可到 http://www.geforce.com/drivers 重新下载(这里可以根据你的显卡型号,OS版本,查出驱动的各个版本) 比cuda版本发布时间(https://developer.nvidia.com/cuda-toolkit-archive 可以查看cuda各版本发布时间)略早的驱动,重新安装显卡驱动
出现问题后,笔者各种怀疑,各种折腾排除:
1 没有安装visual studio。不作cuda开发,可以不装vs
2 有人说 tensorflow-gdp 不支持 python 3.6 ,也不对,tensorflow明确有支持 3.6的版本 tensorflow_gpu-1.2.0rc2-cp36-cp36m-win_amd64.whl
问题还是没有解决。
通过vs2012跟踪nvptxJitCompiler.dll的输出信息,“0x000007FEB91D3E41 (nvptxJitCompiler.dll) (pythonw.exe 中)处有未经处理的异常: 0xC000001D: Illegal Instruction。”
怀疑tensorflow版本太新,尝试1.1.0 (https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.1.0-cp35-cp35m-win_amd64.whl)还是不行。
再试0.12.0,pip install https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0-cp35-cp35m-win_amd64.whl,依然不行