Windows 10,RTX 2070]:无法获取卷积算法。这可能是因为cuDNN无法初始化

时间:2019-05-12 21:23:32

标签: python matlab tensorflow nvidia

系统信息

OS Platform and Distribution : Windows 10 Pro
TensorFlow installed from (source or binary): Source and Binary (tried both)
TensorFlow version: 1.12
Python version: 3.6.6
Installed using virtualenv? pip? conda?: pip and conda (tried both)
Bazel version (if compiling from source): 0.16.1
CUDA/cuDNN version: Cudnn - 7.4.2 , CUDA- 10.0
GPU model and memory: GeForce RTX 2070

我是生物学的博士研究生,所以我不是Python,tensorflow或深度神经网络方面的专家。我目前正在尝试使用去年(https://github.com/talmo/leap)发布的深度学习算法来分析小鼠的行为。到目前为止,我已经使用了Quadro P400,并且在CUDA 9.0上运行良好。但是,我购买了RTX 2070,因为我需要更多的计算能力。 由于RTX卡仅与CUDA 10.0兼容,因此我尝试执行全新安装(计算机与以前不同,这是一台全新的计算机),但是几天来我一直遇到此问题,到目前为止我还无法完成找到解决方法。我尝试了https://github.com/tensorflow/tensorflow/issues/24828中提到的不同解决方案。我还尝试通过遵循https://www.pytorials.com/how-to-install-tensorflow-gpu-with-cuda-10-0-for-python-on-windows/来编译自己的tensorflow并成功,但是尝试运行该算法时遇到了相同的错误。

我尝试了不同版本的Cdunn,基本上是cuda 10.0的所有版本,Python的其他版本(3.7.1、3.6.4)和Tensorflow(1.13.1,每晚构建)。

我不知道下一步该怎么做,所以我请求您的帮助。

提供在遇到问题之前执行的命令/步骤的确切顺序

其他任何信息/日志

总参数:592,066 可训练的参数:592,066 不可训练的参数:0


创建的文件夹:C:\ Users \ dieudon \ Downloads \ models \ 190512_222333-n = 17 时代1/15 追溯(最近一次通话):   _do_call中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ client \ session.py”,行1334     返回fn(* args)   _run_fn中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ client \ session.py”,行1319     选项,feed_dict,fetch_list,target_list,run_metadata)   _call_tf_sessionrun中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ client \ session.py”,行1407     run_metadata) tensorflow.python.framework.errors_impl.UnknownError:无法获取卷积算法。这可能是因为cuDNN初始化失败,所以请尝试查看上面是否打印了警告日志消息。      [[{{node conv2d_1 / convolution}} = Conv2D [T = DT_FLOAT,_class = [“ loc:@ training / Adam / gradients / conv2d_1 / convolution_grad / Conv2DBackpropFilter”],data_format =“ NCHW”,膨胀= [1、1 ,1、1],padding =“ SAME”,步幅= [1、1、1、1],use_cudnn_on_gpu = true,_device =“ / job:localhost /副本:0 / task:0 / device:GPU:0” ](培训/ Adam / gradients / conv2d_1 / convolution_grad / Conv2DBackpropFilter-0-TransposeNHWCToNCHW-LayoutOptimizer,conv2d_1 /内核/读取)]]      [[{{node loss / mul / _287}} = _Recvclient_terminated = false,recv_device =“ / job:localhost /副本0 / task:0 / device:CPU:0”,send_device =“ / job:localhost /副本: 0 /任务:0 /设备:GPU:0“,send_device_incarnation = 1,tensor_name =” edge_1575_loss / mul“,tensor_type = DT_FLOAT,_device =” /作业:localhost /副本:0 /任务:0 /设备:CPU:0 “]]

在处理上述异常期间,发生了另一个异常:

回溯(最近通话最近):   文件“ C:\ Users \ dieudon \ Desktop \ Matlab \ leap-master \ leap \ training.py”,行276,在     clize.run(火车)   在调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ sigtools \ modifiers.py”,第158行     返回self.func(* args,** kwargs)   运行中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ clize \ runner.py”,行360     ret = cli(* args)   调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ clize \ runner.py”,第220行     return func(* posargs,** kwargs)   火车上的“ C:\ Users \ dieudon \ Desktop \ Matlab \ leap-master \ leap \ training.py”文件,第255行     viz_grid_callback   包装中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ legacy \ interfaces.py”,行91     return func(* args,** kwargs)   在fit_generator中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ engine \ training.py”,第2230行     class_weight = class_weight)   在train_on_batch中的第1883行中,文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ engine \ training.py”     输出= self.train_function(ins)   在调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ backend \ tensorflow_backend.py”,第2482行     ** self.session_kwargs)   运行中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ client \ session.py”,第929行     run_metadata_ptr)   _run中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ client \ session.py”,行1152     feed_dict_tensor,选项,run_metadata)   _do_run中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ client \ session.py”,行1328     run_metadata)   _do_call中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ client \ session.py”,行1348     提高类型(e)(node_def,op,消息) tensorflow.python.framework.errors_impl.UnknownError:无法获取卷积算法。这可能是因为cuDNN初始化失败,所以请尝试查看上面是否打印了警告日志消息。      [[节点conv2d_1 /卷积(定义在C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ backend \ tensorflow_backend.py:3341)= Conv2D [T = DT_FLOAT,_class = [“ loc:@ training / Adam / gradients / conv2d_1 / convolution_grad / Conv2DBackpropFilter“],data_format =” NCHW“,膨胀= [1,1,1,1],padding =” SAME“,步幅= [1,1,1,1],use_cudnn_on_gpu = true,_device =“ / job:localhost / replica:0 / task:0 / device:GPU:0”](培训/ Adam / gradients / conv2d_1 / convolution_grad / Conv2DBackpropFilter-0-TransposeNHWCToNCHW-LayoutOptimizer,conv2d_1 /内核/读取) ]]      [[{{node loss / mul / _287}} = _Recvclient_terminated = false,recv_device =“ / job:localhost /副本0 / task:0 / device:CPU:0”,send_device =“ / job:localhost /副本: 0 /任务:0 /设备:GPU:0“,send_device_incarnation = 1,tensor_name =” edge_1575_loss / mul“,tensor_type = DT_FLOAT,_device =” /作业:localhost /副本:0 /任务:0 /设备:CPU:0 “]]

由操作“ conv2d_1 / convolution”引起,定义为:   文件“ C:\ Users \ dieudon \ Desktop \ Matlab \ leap-master \ leap \ training.py”,行276,在     clize.run(火车)   在调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ sigtools \ modifiers.py”,第158行     返回self.func(* args,** kwargs)   运行中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ clize \ runner.py”,行360     ret = cli(* args)   调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ clize \ runner.py”,第220行     return func(* posargs,** kwargs)   火车上的第191行的文件“ C:\ Users \ dieudon \ Desktop \ Matlab \ leap-master \ leap \ training.py”     模型= create_model(net_name,img_size,num_output_channels,filters = filters,amsgrad = amsgrad,upsampling_layers = upsampling_layers,summary = True)   在create_model中的第104行中的文件“ C:\ Users \ dieudon \ Desktop \ Matlab \ leap-master \ leap \ training.py”     返回compile_model(img_size,output_channels,** kwargs)   文件“ c:\ users \ dieudon \ desktop \ matlab \ leap-master \ leap \ models.py”,第23行,jump_cnn     x1 = Conv2D(过滤器,kernel_size = 3,padding =“ same”,Activation =“ relu”)(x_in)   在调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ engine \ topology.py”,第619行     输出= self.call(输入,** kwargs)   呼叫中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ layers \ convolutional.py”,行168     dilation_rate = self.dilation_rate)   在conv2d中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ backend \ tensorflow_backend.py”,行3341     data_format = tf_data_format)   卷起的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ ops \ nn_ops.py”,第780行     返回op(输入,过滤器)   在调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ ops \ nn_ops.py”,行868     返回self.conv_op(inp,filter)   在调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ ops \ nn_ops.py”,第520行     返回self.call(inp,filter)   在调用中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ ops \ nn_ops.py”,第204行     名称= self.name)   在conv2d中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ ops \ gen_nn_ops.py”,行1044     data_format = data_format,dilations = dilations,name = name)   _apply_op_helper中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ framework \ op_def_library.py”,行787     op_def = op_def)   文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ util \ deprecation.py”,行488,在new_func中     return func(* args,** kwargs)   在create_op中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py”,行3274     op_def = op_def)    init 中的文件“ C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py”,行1770     self._traceback = tf_stack.extract_stack()

UnknownError(请参阅上面的回溯):无法获取卷积算法。这可能是因为cuDNN初始化失败,所以请尝试查看上面是否打印了警告日志消息。      [[节点conv2d_1 /卷积(定义在C:\ Users \ dieudon \ Anaconda3 \ lib \ site-packages \ keras \ backend \ tensorflow_backend.py:3341)= Conv2D [T = DT_FLOAT,_class = [“ loc:@ training / Adam / gradients / conv2d_1 / convolution_grad / Conv2DBackpropFilter“],data_format =” NCHW“,膨胀= [1,1,1,1],padding =” SAME“,步幅= [1,1,1,1],use_cudnn_on_gpu = true,_device =“ / job:localhost / replica:0 / task:0 / device:GPU:0”](培训/ Adam / gradients / conv2d_1 / convolution_grad / Conv2DBackpropFilter-0-TransposeNHWCToNCHW-LayoutOptimizer,conv2d_1 /内核/读取) ]]      [[{{node loss / mul / _287}} = _Recvclient_terminated = false,recv_device =“ / job:localhost /副本0 / task:0 / device:CPU:0”,send_device =“ / job:localhost /副本: 0 /任务:0 /设备:GPU:0“,send_device_incarnation = 1,tensor_name =” edge_1575_loss / mul“,tensor_type = DT_FLOAT,_device =” /作业:localhost /副本:0 /任务:0 /设备:CPU:0 “]]

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您所要做的就是在代码的开头添加以下行:

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)