Tensorflow Cudnn在初始化时出错。错误

Tensorflow Cudnn在初始化时出错。错误,tensorflow,gpu,Tensorflow,Gpu,我正在使用 Anaconda,tensorflow gpu 2.0 GPU:NVIDIA RTX 2070 Python版本3.6.9 Cuda:Cuda_10.0.130_411.31_win10 CuDnn:CuDnn-10.0-windows10-x64-v7.6.5.32 使用笔记本电脑操作系统WINDOWS 10 您好,当我运行此代码时 EPOCHS = 5 for epoch in range(EPOCHS): for images, labels in train_ds:

我正在使用 Anaconda,tensorflow gpu 2.0 GPU:NVIDIA RTX 2070 Python版本3.6.9 Cuda:Cuda_10.0.130_411.31_win10 CuDnn:CuDnn-10.0-windows10-x64-v7.6.5.32 使用笔记本电脑操作系统WINDOWS 10

您好,当我运行此代码时

EPOCHS = 5

for epoch in range(EPOCHS):
  for images, labels in train_ds:
    train_step(images, labels)

  for test_images, test_labels in test_ds:
    test_step(test_images, test_labels)

  template = 'epoch: {}, loss: {}, acc: {}, test loss: {}, test acc: {}'
  print (template.format(epoch+1,
                         train_loss.result(),
                         train_accuracy.result()*100,
                         test_loss.result(),
                         test_accuracy.result()*100))
内容如下:

---------------------------------------------------------------------------
UnknownError                              Traceback (most recent call last)
<ipython-input-21-fb8a7b9e2d15> in <module>
      3 for epoch in range(EPOCHS):
      4   for images, labels in train_ds:
----> 5     train_step(images, labels)
      6 
      7   for test_images, test_labels in test_ds:

~\Anaconda3\envs\DL\lib\site-packages\tensorflow_core\python\eager\def_function.py in __call__(self, *args, **kwds)
    455 
    456     tracing_count = self._get_tracing_count()
--> 457     result = self._call(*args, **kwds)
    458     if tracing_count == self._get_tracing_count():
    459       self._call_counter.called_without_tracing()

~\Anaconda3\envs\DL\lib\site-packages\tensorflow_core\python\eager\def_function.py in _call(self, *args, **kwds)
    485       # In this case we have created variables on the first call, so we run the
    486       # defunned version which is guaranteed to never create variables.
--> 487       return self._stateless_fn(*args, **kwds)  # pylint: disable=not-callable
    488     elif self._stateful_fn is not None:
    489       # Release the lock early so that multiple threads can perform the call

~\Anaconda3\envs\DL\lib\site-packages\tensorflow_core\python\eager\function.py in __call__(self, *args, **kwargs)
   1821     """Calls a graph function specialized to the inputs."""
   1822     graph_function, args, kwargs = self._maybe_define_function(args, kwargs)
-> 1823     return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
   1824 
   1825   @property

~\Anaconda3\envs\DL\lib\site-packages\tensorflow_core\python\eager\function.py in _filtered_call(self, args, kwargs)
   1139          if isinstance(t, (ops.Tensor,
   1140                            resource_variable_ops.BaseResourceVariable))),
-> 1141         self.captured_inputs)
   1142 
   1143   def _call_flat(self, args, captured_inputs, cancellation_manager=None):

~\Anaconda3\envs\DL\lib\site-packages\tensorflow_core\python\eager\function.py in _call_flat(self, args, captured_inputs, cancellation_manager)
   1222     if executing_eagerly:
   1223       flat_outputs = forward_function.call(
-> 1224           ctx, args, cancellation_manager=cancellation_manager)
   1225     else:
   1226       gradient_name = self._delayed_rewrite_functions.register()

~\Anaconda3\envs\DL\lib\site-packages\tensorflow_core\python\eager\function.py in call(self, ctx, args, cancellation_manager)
    509               inputs=args,
    510               attrs=("executor_type", executor_type, "config_proto", config),
--> 511               ctx=ctx)
    512         else:
    513           outputs = execute.execute_with_cancellation(

~\Anaconda3\envs\DL\lib\site-packages\tensorflow_core\python\eager\execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     65     else:
     66       message = e.message
---> 67     six.raise_from(core._status_to_exception(e.code, message), None)
     68   except TypeError as e:
     69     keras_symbolic_tensors = [

~\Anaconda3\envs\DL\lib\site-packages\six.py in raise_from(value, from_value)

UnknownError:  Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
     [[node my_model_1/conv2d_1/Conv2D (defined at C:\Users\hojun\Anaconda3\envs\DL\lib\site-packages\tensorflow_core\python\framework\ops.py:1751) ]] [Op:__inference_train_step_1276]

Function call stack:
train_step
---------------------------------------------------------------------------
UnknownError回溯(上次最近的调用)
在里面
3对于范围内的历元(历元):
4对于序列中的图像、标签:
---->5列车步骤(图像、标签)
6.
7对于测试图像,测试ds中的测试标签:
~\Anaconda3\envs\DL\lib\site packages\tensorflow\u core\python\eager\def\u function.py在调用中(self,*args,**kwds)
455
456跟踪\u计数=自。\u获取\u跟踪\u计数()
-->457结果=自调用(*args,**kwds)
458如果跟踪计数==self.\u获取跟踪计数():
459 self.\u调用\u计数器。调用\u而不跟踪()
调用中的~\Anaconda3\envs\DL\lib\site packages\tensorflow\u core\python\eager\def\u function.py(self,*args,**kwds)
485#在本例中,我们在第一次调用时创建了变量,因此我们运行
486#取消运行版本,保证永远不会创建变量。
-->487返回self._无状态_fn(*args,**kwds)35; pylint:disable=不可调用
488 elif self.\u stateful\u fn不是无:
489#尽早释放锁,以便多个线程可以执行调用
~\Anaconda3\envs\DL\lib\site packages\tensorflow\u core\python\eager\function.py在调用中(self,*args,**kwargs)
1821“”调用专用于输入的图形函数。”“”
1822图形函数,args,kwargs=self.\u可能定义函数(args,kwargs)
->1823返回图形\函数。\过滤\调用(args,kwargs)\ pylint:disable=受保护访问
1824
1825@property
~\Anaconda3\envs\DL\lib\site packages\tensorflow\u core\python\eager\function.py in\u filtered\u调用(self、args、kwargs)
1139如果存在(t)(操作张量,
1140资源变量(操作BaseResourceVariable)),
->1141.自捕获(U输入)
1142
1143 def_呼叫平面(自身、参数、捕获的_输入、取消_管理器=无):
~\Anaconda3\envs\DL\lib\site packages\tensorflow\u core\python\eager\function.py在调用平面中(self、args、捕获的输入、取消管理器)
1222如果急于执行(u):
1223平坦输出=正向函数调用(
->1224 ctx,参数,取消管理器=取消管理器)
1225其他:
1226 gradient\u name=self.\u delayed\u rewrite\u functions.register()
调用中的~\Anaconda3\envs\DL\lib\site packages\tensorflow\u core\python\eager\function.py(self、ctx、args、cancellation\u manager)
509输入=参数,
510属性=(“执行器类型”,执行器类型,“配置协议”,配置),
-->511 ctx=ctx)
512其他:
513输出=execute.execute_与_取消(
快速执行中的~\Anaconda3\envs\DL\lib\site packages\tensorflow\u core\python\eager\execute.py(op\u名称、num\u输出、输入、属性、ctx、名称)
65.其他:
66 message=e.message
--->67六、从(核心状态)提升到异常(如代码、消息),无
68除e以外的类型错误:
69 keras_符号_张量=[
~\Anaconda3\envs\DL\lib\site packages\six.py in raise\u from(value,from\u value)
未知错误:无法获取卷积算法。这可能是因为cuDNN未能初始化,因此请尝试查看上面是否打印了警告日志消息。
[[node my_model_1/conv2d_1/conv2d(定义于C:\Users\hojun\Anaconda3\envs\DL\lib\site packages\tensorflow\u core\python\framework\ops.py:1751)][Op:[u推理训练步骤1276]
函数调用堆栈:
火车站
我试着卸载并安装整个Nvidia GPU(驱动程序、cuda和cudnn的不同版本等等),但没有任何效果。Tensorflow 2.0 2.1都尝试过,但都是一样的。 有人有办法解决这个问题吗

谢谢。

根据测试过的Cuda和CuDnn组合的TF,您可以尝试安装CuDnn 7.4,看看效果如何,希望能有所帮助


这里有一个类似的问题,希望这能解决您的问题。我也尝试过所有这些组合。遗憾的是,它还没有起作用。(您是否尝试过降级到Cuda 9和CuDnn 7?如果不起作用,为什么不尝试升级到Python 3.7,看看这是否解决了问题。)