Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“神经网络Python错误”;无法获取卷积算法“;_Python_Tensorflow_Keras_Neural Network - Fatal编程技术网

“神经网络Python错误”;无法获取卷积算法“;

“神经网络Python错误”;无法获取卷积算法“;,python,tensorflow,keras,neural-network,Python,Tensorflow,Keras,Neural Network,我正在尝试用Python运行一些神经网络代码。我让它在Google Colab上正常工作。然后我将代码移动到远程机器GPU上的Jupyter笔记本上 它运行正常,直到我尝试使用以下方法拟合模型: history = model.fit_generator(generator=training_generator, validation_data=validation_generator, use_multiprocessing=True, workers=1, epochs=100, shuff

我正在尝试用Python运行一些神经网络代码。我让它在Google Colab上正常工作。然后我将代码移动到远程机器GPU上的Jupyter笔记本上

它运行正常,直到我尝试使用以下方法拟合模型:

history = model.fit_generator(generator=training_generator, validation_data=validation_generator, use_multiprocessing=True, workers=1, epochs=100, shuffle=True, verbose=1)
下面是完整的错误消息。我只是不知道从哪里开始理解它的意思,所以我正在寻求帮助。提前感谢:

UnknownError                              Traceback (most recent call last)
<ipython-input-15-d3d33225fec8> in <module>
      1 # Train model on dataset
----> 2 history = model.fit_generator(generator=training_generator, validation_data=validation_generator, use_multiprocessing=True, workers=1, epochs=100, shuffle=True, verbose=1)

~/miniconda3/lib/python3.7/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
     89                 warnings.warn('Update your `' + object_name + '` call to the ' +
     90                               'Keras 2 API: ' + signature, stacklevel=2)
---> 91             return func(*args, **kwargs)
     92         wrapper._original_function = func
     93         return wrapper

~/miniconda3/lib/python3.7/site-packages/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
   1416             use_multiprocessing=use_multiprocessing,
   1417             shuffle=shuffle,
-> 1418             initial_epoch=initial_epoch)
   1419 
   1420     @interfaces.legacy_generator_methods_support

~/miniconda3/lib/python3.7/site-packages/keras/engine/training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
    215                 outs = model.train_on_batch(x, y,
    216                                             sample_weight=sample_weight,
--> 217                                             class_weight=class_weight)
    218 
    219                 outs = to_list(outs)

~/miniconda3/lib/python3.7/site-packages/keras/engine/training.py in train_on_batch(self, x, y, sample_weight, class_weight)
   1215             ins = x + y + sample_weights
   1216         self._make_train_function()
-> 1217         outputs = self.train_function(ins)
   1218         return unpack_singleton(outputs)
   1219 

~/miniconda3/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py in __call__(self, inputs)
   2713                 return self._legacy_call(inputs)
   2714 
-> 2715             return self._call(inputs)
   2716         else:
   2717             if py_any(is_tensor(x) for x in inputs):

~/miniconda3/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py in _call(self, inputs)
   2673             fetched = self._callable_fn(*array_vals, run_metadata=self.run_metadata)
   2674         else:
-> 2675             fetched = self._callable_fn(*array_vals)
   2676         return fetched[:len(self.outputs)]
   2677 

~/miniconda3/lib/python3.7/site-packages/tensorflow/python/client/session.py in __call__(self, *args, **kwargs)
   1437           ret = tf_session.TF_SessionRunCallable(
   1438               self._session._session, self._handle, args, status,
-> 1439               run_metadata_ptr)
   1440         if run_metadata:
   1441           proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

~/miniconda3/lib/python3.7/site-packages/tensorflow/python/framework/errors_impl.py in __exit__(self, type_arg, value_arg, traceback_arg)
    526             None, None,
    527             compat.as_text(c_api.TF_Message(self.status.status)),
--> 528             c_api.TF_GetCode(self.status.status))
    529     # Delete the underlying status object from memory otherwise it stays alive
    530     # as there is a reference to status from this from the traceback due to

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 conv2d_1/convolution}}]]
     [[{{node metrics/acc/Mean}}]]
UnknownError回溯(最近一次调用)
在里面
1#数据集上的列车模型
---->2历史记录=模型。拟合生成器(生成器=培训生成器,验证数据=验证生成器,使用多处理=True,工人=1,纪元=100,随机播放=True,详细信息=1)
包装中的~/miniconda3/lib/python3.7/site-packages/keras/legacy/interfaces.py(*args,**kwargs)
89 warnings.warn('Update your`'+object\u name+'`调用+
90'Keras 2 API:'+签名,堆栈级别=2)
--->91返回函数(*args,**kwargs)
92包装器._原始函数=func
93返回包装器
~/miniconda3/lib/python3.7/site-packages/keras/engine/training.py-in-fit\u生成器(self、生成器、每个历元的步骤、历元、冗余、回调、验证数据、验证步骤、类权重、最大队列大小、工作者、使用多处理、无序、初始历元)
1416使用多处理=使用多处理,
1417洗牌=洗牌,
->1418初始_历元=初始_历元)
1419
1420@interfaces.legacy\u生成器\u方法\u支持
~/miniconda3/lib/python3.7/site-packages/keras/engine/training\u generator.py in-fit\u generator(模型、生成器、每个历元的步骤、历元、冗余、回调、验证数据、验证步骤、类权重、最大队列大小、工作者、使用多处理、无序、初始历元)
215个输出=批量生产的型号(x,y,
216样品重量=样品重量,
-->217级重量=级重量)
218
219 outs=待办名单(outs)
~/miniconda3/lib/python3.7/site-packages/keras/engine/training.py批量生产(自身、x、y、样品重量、等级重量)
1215英寸=x+y+样本重量
1216自我制造训练功能()
->1217输出=自列车功能(ins)
1218返回解包单例(输出)
1219
~/miniconda3/lib/python3.7/site-packages/keras/backend/tensorflow\u backend.py in\uuuu\u调用(self,输入)
2713返回自。\u传统\u调用(输入)
2714
->2715返回自调用(输入)
2716其他:
2717如果py_有(输入中x的张量为x):
调用中的~/miniconda3/lib/python3.7/site-packages/keras/backend/tensorflow\u backend.py(self,输入)
2673 fetched=self.\u callable\u fn(*array\u vals,run\u metadata=self.run\u metadata)
2674其他:
->2675 fetched=self.\u callable\u fn(*array\u vals)
2676获取的返回[:len(自输出)]
2677
~/miniconda3/lib/python3.7/site-packages/tensorflow/python/client/session.py在调用中(self,*args,**kwargs)
1437 ret=tf_session.tf_SessionRunCallable(
1438 self.\u session.\u session,self.\u handle,args,status,
->1439运行(元数据)
1440如果运行\u元数据:
1441 proto_data=tf_session.tf_GetBuffer(run_metadata_ptr)
~/miniconda3/lib/python3.7/site-packages/tensorflow/python/framework/errors\u impl.py in\uuuuuuuu exit\uuuuuuuu(self,type\u arg,value\u arg,traceback\u arg)
526没有,没有,
527兼容as_文本(c_api.TF_消息(self.status.status)),
-->528 c_api.TF_GetCode(self.status.status))
529#从内存中删除基础状态对象,否则它将保持活动状态
530#由于以下原因,在回溯中有一个状态参考:
未知错误:获取卷积算法失败。这可能是因为cuDNN未能初始化,所以请尝试查看上面是否打印了警告日志消息。
[{{node conv2d_1/卷积}]]
[{{node metrics/acc/Mean}}]]

正如@thushv89所说,这是TF二进制文件与已安装的CUDNN版本的兼容性问题

您可以使用以下方法检查tensorflow版本:

python -c 'import tensorflow as tf; print(tf.__version__);'
然后在此处检查所需的CUDA/CUDNN版本:

注:所示CUDA/CUDNN版本仅与TF的正式发行相关。对于康达来说,应该有更好的方法来处理它

然后您可以检查您的CUDA版本:

nvcc --version
然后使用以下选项之一检查您的CUDNN版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

每当CUDNN与CUDA版本不兼容时,我都会看到此错误。您是否检查过您的CUDNN、CUDA和驱动程序是否兼容?我不知道如何兼容-但感谢您给我一个开始的位置:)此页面可能有用。但可能需要一些尝试和错误