问题描述
我试图在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 (将#修改为@)