BatchNormaization tensorflow 2.0:找不到节点的有效设备节点:{{node FusedBatchNormV3}}

问题描述

我试图在tensorflow 2.0上的卷积层之后实现批处理规范化层,但是出现以下错误“找不到节点的有效设备。 节点:{{node FusedBatchnormV3}}'。 有人可以帮我解决我的问题吗? 这是我的代码错误消息。 谢谢!

from tensorflow.keras.layers import Batchnormalization,Flatten
for images,labels in Train_data.batch(BATCH_SIZE):
    x = Conv2D(64,(3,3),activation="relu")(images)
    bn = Batchnormalization(axis= 1)
    x = bn(x)
    print(x)
    break

错误消息:

FallbackException                        Traceback (most recent call last)
c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py in fused_batch_norm_v3(x,scale,offset,mean,variance,epsilon,exponential_avg_factor,data_format,is_training,name)
   4246         epsilon,"exponential_avg_factor",-> 4247         "data_format","is_training",is_training)
   4248       _result = _FusedBatchnormV3Output._make(_result)

_FallbackException: Expecting float value for attr exponential_avg_factor,got int

During handling of the above exception,another exception occurred:

NotFoundError                             Traceback (most recent call last)
<ipython-input-158-78acb25ec62c> in <module>
      2     x = Conv2D(64,activation="relu")(images)
      3     bn = Batchnormalization(axis= 1)
----> 4     x = bn(x)
      5     print(x)
      6     break

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\keras\engine\base_layer.py in __call__(self,*args,**kwargs)
    966           with base_layer_utils.autocast_context_manager(
    967               self._compute_dtype):
--> 968             outputs = self.call(cast_inputs,**kwargs)
    969           self._handle_activity_regularization(inputs,outputs)
    970           self._set_mask_Metadata(inputs,outputs,input_masks)

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\keras\layers\normalization.py in call(self,inputs,training)
    739 
    740     if self.fused:
--> 741       outputs = self._fused_batch_norm(inputs,training=training)
    742       if self.virtual_batch_size is not None:
    743         # Currently never reaches here since fused_batch_norm does not support

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\keras\layers\normalization.py in _fused_batch_norm(self,training)
    602 
    603     output,variance = tf_utils.smart_cond(training,train_op,--> 604                                                  _fused_batch_norm_inference)
    605     variance = _maybe_add_or_remove_bessels_correction(variance,remove=True)
    606 

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\keras\utils\tf_utils.py in smart_cond(pred,true_fn,false_fn,name)
     63         pred,true_fn=true_fn,false_fn=false_fn,name=name)
     64   return smart_module.smart_cond(
---> 65       pred,name=name)
     66 
     67 

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\framework\smart_cond.py in smart_cond(pred,name)
     54       return true_fn()
     55     else:
---> 56       return false_fn()
     57   else:
     58     return control_flow_ops.cond(pred,c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\keras\layers\normalization.py in _fused_batch_norm_inference()
    591           epsilon=self.epsilon,592           is_training=False,--> 593           data_format=self._data_format)
    594 
    595     train_op = _fused_batch_norm_training

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\ops\nn_impl.py in fused_batch_norm(x,name,exponential_avg_factor)
   1542         data_format=data_format,1543         is_training=is_training,-> 1544         name=name)
   1545     return y,running_mean,running_var
   1546 

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py in fused_batch_norm_v3(x,name)
   4254             exponential_avg_factor=exponential_avg_factor,4255             data_format=data_format,is_training=is_training,name=name,-> 4256             ctx=_ctx)
   4257       except _core._SymbolicException:
   4258         pass  # Add nodes to the TensorFlow graph.

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py in fused_batch_norm_v3_eager_fallback(x,ctx)
   4315   data_format,is_training)
   4316   _result = _execute.execute(b"FusedBatchnormV3",6,inputs=_inputs_flat,-> 4317                              attrs=_attrs,ctx=ctx,name=name)
   4318   if _execute.must_record_gradient():
   4319     _execute.record_gradient(

c:\users\gt910917\projects\tensorflow_2\env\lib\site-packages\tensorflow\python\eager\execute.py in quick_execute(op_name,num_outputs,attrs,ctx,name)
     58     ctx.ensure_initialized()
     59     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle,device_name,op_name,---> 60                                         inputs,num_outputs)
     61   except core._NotOkStatusException as e:
     62     if name is not None:

NotFoundError: Could not find valid device for node.
Node:{{node FusedBatchnormV3}}
All kernels registered for op FusedBatchnormV3 :
  device='cpu'; T in [DT_FLOAT]; U in [DT_FLOAT]
  device='cpu'; T in [DT_HALF]; U in [DT_FLOAT]
  device='GPU'; T in [DT_FLOAT]; U in [DT_FLOAT]
  device='GPU'; T in [DT_HALF]; U in [DT_FLOAT]
  device='XLA_GPU_JIT'; T in [DT_FLOAT,DT_BFLOAT16,DT_HALF]; U in [DT_FLOAT]
  device='XLA_cpu_JIT'; T in [DT_FLOAT,DT_HALF]; U in [DT_FLOAT]
  device='XLA_cpu'; T in [DT_FLOAT,DT_HALF]; U in [DT_FLOAT]
  device='XLA_GPU'; T in [DT_FLOAT,DT_HALF]; U in [DT_FLOAT]
 [Op:FusedBatchnormV3]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...