Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 3.x 无法创建cudnn句柄:cudnn\u状态\u分配\u失败_Python 3.x_Tensorflow_Keras - Fatal编程技术网

Python 3.x 无法创建cudnn句柄:cudnn\u状态\u分配\u失败

Python 3.x 无法创建cudnn句柄:cudnn\u状态\u分配\u失败,python-3.x,tensorflow,keras,Python 3.x,Tensorflow,Keras,以下是我正在使用的模型: #import tensorflow as tf def create_model(): return tf.keras.models.Sequential([ #tf.keras.layers.Flatten(input_shape=(2,)), tf.keras.layers.Conv2D(filters=32,kernel_size=(3,3),strides=(1,1),input_shape=(156,256,3),padding='v

以下是我正在使用的模型:

#import tensorflow as tf
def create_model():
    return tf.keras.models.Sequential([
    #tf.keras.layers.Flatten(input_shape=(2,)),
    tf.keras.layers.Conv2D(filters=32,kernel_size=(3,3),strides=(1,1),input_shape=(156,256,3),padding='valid',data_format='channels_last',
              activation='relu',kernel_initializer=tf.keras.initializers.he_normal(seed=0),name='Conv1'),
    tf.keras.layers.MaxPool2D(pool_size=(2,2),strides=(2,2),padding='valid',data_format='channels_last',name='Pool1'), 
    tf.keras.layers.Conv2D(filters=64,kernel_size=(3,3),strides=(1,1),padding='valid',data_format='channels_last',
              activation='relu',kernel_initializer=tf.keras.initializers.he_normal(seed=3),name='Conv2'),

    tf.keras.layers.Conv2D(filters=64,kernel_size=(3,3),strides=(2,2),padding='valid',data_format='channels_last',
              activation='relu',kernel_initializer=tf.keras.initializers.he_normal(seed=5),name='Conv3'),
    tf.keras.layers.MaxPool2D(pool_size=(2,2),strides=(1,1),padding='valid',data_format='channels_last',name='Pool2'),
    tf.keras.layers.Conv2D(filters=128,kernel_size=(3,3),strides=(2,2),padding='valid',data_format='channels_last',
              activation='relu',kernel_initializer=tf.keras.initializers.he_normal(seed=9),name='Conv4'),

    tf.keras.layers.MaxPool2D(pool_size=(2,2),strides=(2,2),padding='valid',data_format='channels_last',name='Pool3'),
    tf.keras.layers.Flatten(data_format='channels_last',name='Flatten'),    
    tf.keras.layers.Dense(units=30,activation='relu',kernel_initializer=tf.keras.initializers.glorot_normal(seed=32),name='FC1'),
    tf.keras.layers.Dense(units=15,activation='relu',kernel_initializer=tf.keras.initializers.glorot_normal(seed=33),name='FC2'),
    tf.keras.layers.Dense(units=8,activation='softmax',kernel_initializer=tf.keras.initializers.glorot_normal(seed=3),name='Output'),


  ])
以下是我得到的错误:

    UnknownError                              Traceback (most recent call last)
<ipython-input-47-264c0fcc37e1> in <module>
      1 ##fitting generator
----> 2 model.fit_generator(ImageGenerator,steps_per_epoch=216,epochs=3)

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
   1295         shuffle=shuffle,
   1296         initial_epoch=initial_epoch,
-> 1297         steps_name='steps_per_epoch')
   1298 
   1299   def evaluate_generator(self,

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\training_generator.py in model_iteration(model, data, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch, mode, batch_size, steps_name, **kwargs)
    263 
    264       is_deferred = not model._is_compiled
--> 265       batch_outs = batch_function(*batch_data)
    266       if not isinstance(batch_outs, list):
    267         batch_outs = [batch_outs]

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\training.py in train_on_batch(self, x, y, sample_weight, class_weight, reset_metrics)
    971       outputs = training_v2_utils.train_on_batch(
    972           self, x, y=y, sample_weight=sample_weight,
--> 973           class_weight=class_weight, reset_metrics=reset_metrics)
    974       outputs = (outputs['total_loss'] + outputs['output_losses'] +
    975                  outputs['metrics'])

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\training_v2_utils.py in train_on_batch(model, x, y, sample_weight, class_weight, reset_metrics)
    262       y,
    263       sample_weights=sample_weights,
--> 264       output_loss_metrics=model._output_loss_metrics)
    265 
    266   if reset_metrics:

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\training_eager.py in train_on_batch(model, inputs, targets, sample_weights, output_loss_metrics)
    309           sample_weights=sample_weights,
    310           training=True,
--> 311           output_loss_metrics=output_loss_metrics))
    312   if not isinstance(outs, list):
    313     outs = [outs]

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\training_eager.py in _process_single_batch(model, inputs, targets, output_loss_metrics, sample_weights, training)
    250               output_loss_metrics=output_loss_metrics,
    251               sample_weights=sample_weights,
--> 252               training=training))
    253       if total_loss is None:
    254         raise ValueError('The model cannot be run '

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\training_eager.py in _model_loss(model, inputs, targets, output_loss_metrics, sample_weights, training)
    125     inputs = nest.map_structure(ops.convert_to_tensor, inputs)
    126 
--> 127   outs = model(inputs, **kwargs)
    128   outs = nest.flatten(outs)
    129 

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py in __call__(self, inputs, *args, **kwargs)
    889           with base_layer_utils.autocast_context_manager(
    890               self._compute_dtype):
--> 891             outputs = self.call(cast_inputs, *args, **kwargs)
    892           self._handle_activity_regularization(inputs, outputs)
    893           self._set_mask_metadata(inputs, outputs, input_masks)

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\sequential.py in call(self, inputs, training, mask)
    254       if not self.built:
    255         self._init_graph_network(self.inputs, self.outputs, name=self.name)
--> 256       return super(Sequential, self).call(inputs, training=training, mask=mask)
    257 
    258     outputs = inputs  # handle the corner case where self.layers is empty

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\network.py in call(self, inputs, training, mask)
    706     return self._run_internal_graph(
    707         inputs, training=training, mask=mask,
--> 708         convert_kwargs_to_constants=base_layer_utils.call_context().saving)
    709 
    710   def compute_output_shape(self, input_shape):

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\network.py in _run_internal_graph(self, inputs, training, mask, convert_kwargs_to_constants)
    858 
    859           # Compute outputs.
--> 860           output_tensors = layer(computed_tensors, **kwargs)
    861 
    862           # Update tensor_dict.

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py in __call__(self, inputs, *args, **kwargs)
    889           with base_layer_utils.autocast_context_manager(
    890               self._compute_dtype):
--> 891             outputs = self.call(cast_inputs, *args, **kwargs)
    892           self._handle_activity_regularization(inputs, outputs)
    893           self._set_mask_metadata(inputs, outputs, input_masks)

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\keras\layers\convolutional.py in call(self, inputs)
    195 
    196   def call(self, inputs):
--> 197     outputs = self._convolution_op(inputs, self.kernel)
    198 
    199     if self.use_bias:

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\ops\nn_ops.py in __call__(self, inp, filter)
   1132           call_from_convolution=False)
   1133     else:
-> 1134       return self.conv_op(inp, filter)
   1135     # copybara:strip_end
   1136     # copybara:insert return self.conv_op(inp, filter)

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\ops\nn_ops.py in __call__(self, inp, filter)
    637 
    638   def __call__(self, inp, filter):  # pylint: disable=redefined-builtin
--> 639     return self.call(inp, filter)
    640 
    641 

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\ops\nn_ops.py in __call__(self, inp, filter)
    236         padding=self.padding,
    237         data_format=self.data_format,
--> 238         name=self.name)
    239 
    240 

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\ops\nn_ops.py in conv2d(input, filter, strides, padding, use_cudnn_on_gpu, data_format, dilations, name, filters)
   2008                            data_format=data_format,
   2009                            dilations=dilations,
-> 2010                            name=name)
   2011 
   2012 

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\ops\gen_nn_ops.py in conv2d(input, filter, strides, padding, use_cudnn_on_gpu, explicit_paddings, data_format, dilations, name)
   1029             input, filter, strides=strides, use_cudnn_on_gpu=use_cudnn_on_gpu,
   1030             padding=padding, explicit_paddings=explicit_paddings,
-> 1031             data_format=data_format, dilations=dilations, name=name, ctx=_ctx)
   1032       except _core._SymbolicException:
   1033         pass  # Add nodes to the TensorFlow graph.

D:\anaconda\envs\tf_gpu\lib\site-packages\tensorflow_core\python\ops\gen_nn_ops.py in conv2d_eager_fallback(input, filter, strides, padding, use_cudnn_on_gpu, explicit_paddings, data_format, dilations, name, ctx)
   1128   explicit_paddings, "data_format", data_format, "dilations", dilations)
   1129   _result = _execute.execute(b"Conv2D", 1, inputs=_inputs_flat, attrs=_attrs,
-> 1130                              ctx=_ctx, name=name)
   1131   _execute.record_gradient(
   1132       "Conv2D", _inputs_flat, _attrs, _result, name)

D:\anaconda\envs\tf_gpu\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 = [

D:\anaconda\envs\tf_gpu\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. [Op:Conv2D]
UnknownError回溯(最近一次调用)
在里面
1##安装发电机
---->2型号。装配发生器(图像发生器,每个历元的步数=216,历元=3)
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\training.py in-fit\u生成器(self、生成器、每个历元的步骤、历元、冗余、回调、验证数据、验证步骤、验证频率、类权重、最大队列大小、工作者、使用多处理、洗牌、初始历元)
1295洗牌=洗牌,
1296初始纪元=初始纪元,
->1297个步骤(每个时代的步骤)
1298
1299 def评估_发生器(自,
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\training\u generator.py在模型迭代中(模型、数据、每个历元的步骤、历元、冗余、回调、验证数据、验证步骤、验证频率、类权重、最大队列大小、工人、使用多处理、随机、初始历元、模式、批大小、步骤名称、**kwargs)
263
264是延迟的=不是模型。\是编译的
-->265批处理输出=批处理功能(*批处理数据)
266如果不存在(批次,列表):
267批次输出=[批次输出]
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\training.py in train\u on\u on\u批次(self、x、y、sample\u weight、class\u weight、reset\u metrics)
971输出=批次上的培训(
972自身,x,y=y,样本重量=样本重量,
-->973类权重=类权重,重置度量=重置度量)
974输出=(输出['总损耗]+输出['输出损耗']+
975个输出[“指标])
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\training\u v2\u utils.py in train\u on\u批次(型号、x、y、样本重量、类别重量、重置度量)
262年,
263样本权重=样本权重,
-->264输出\损耗\度量=模型。\输出\损耗\度量)
265
266如果重置度量:
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\training\u eager.py in train\u on\u批次(模型、输入、目标、样本权重、输出损失度量)
309样本重量=样本重量,
310训练=正确,
-->311输出损失度量=输出损失度量)
312如果不存在(输出,列表):
313出局=[出局]
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\training\u eager.py in\u process\u single\u batch(模型、输入、目标、输出、损耗指标、样本权重、训练)
250输出损耗度量=输出损耗度量,
251样本权重=样本权重,
-->252培训=培训)
253如果总损失为零:
254 raise VALUE ERROR('模型无法运行'
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\training\u eager.py in\u model\u loss(模型、输入、目标、输出\u loss\u指标、样本权重、训练)
125输入=nest.map\u结构(ops.convert\u to\u张量,输入)
126
-->127输出=型号(输入,**kwargs)
128个输出=嵌套。展平(输出)
129
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\base\u layer.py in\uuuuuu调用(self,input,*args,**kwargs)
889,带基本\u层\u utils.autocast\u上下文\u管理器(
890自我计算类型):
-->891输出=自调用(cast_输入,*args,**kwargs)
892自我处理活动规则化(输入、输出)
893自设置掩码元数据(输入、输出、输入掩码)
调用中的D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\sequential.py(self、输入、训练、掩码)
254如果不是自建的:
255 self.\u init\u graph\u网络(self.inputs,self.outputs,name=self.name)
-->256返回超级(顺序,自)。调用(输入,训练=训练,掩码=掩码)
257
258输出=输入#处理self.layers为空的拐角情况
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\network.py in call(self、input、training、mask)
706返回自运行内部图(
707输入,训练=训练,面具=面具,
-->708将\u kwargs\u转换为\u常量=基本\u层\u utils.call\u context().saving)
709
710 def计算输出形状(自身、输入形状):
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\network.py in\u run\u internal\u图形(self、input、training、mask、convert\u kwargs\u to \u constants)
858
859#计算输出。
-->860输出张量=层(计算张量,**kwargs)
861
862#更新张量dict。
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\engine\base\u layer.py in\uuuuuu调用(self,input,*args,**kwargs)
889,带基本\u层\u utils.autocast\u上下文\u管理器(
890自我计算类型):
-->891输出=自调用(cast_输入,*args,**kwargs)
892自我处理活动规则化(输入、输出)
893自设置掩码元数据(输入、输出、输入掩码)
调用中的D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\keras\layers\convolutional.py(self,输入)
195
196 def呼叫(自身,输入):
-->197输出=自卷积(输入,自内核)
198
199如果自我使用偏差:
D:\anaconda\envs\tf\u gpu\lib\site packages\tensorflow\u core\python\ops\nn\u ops.py in\uuuu调用(self、inp、filter)
1132从\u调用\u(卷积=假)
1133其他:
->1134返回自转换操作(inp,过滤器)
1135#copybara:带#端
1136#copybara:插入返回self.conv_op(inp,filter)
D:\anacond
gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_virtual_device_configuration(gpus[0], 
           [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=4000)])