如何解决为什么我收到属性错误?无法追溯,
我仍在学习 Python 并尝试在 Jupyter notebook (TF 2.4.1) 中运行此 Keras 代码,用于此 link 中可用的三元组连体网络。我的数据集已正确加载。但是不知道为什么这个错误一再出现。
我无法追踪错误。有人知道怎么回事吗?
代码:
import time
dataset_train,dataset_test,x_train_origin,y_train_origin,x_test_origin,y_test_origin = buildDataSet()
network = build_network(input_shape,128)
network_train = build_model(input_shape,network,margin=0.2)
network_train.compile(loss=None,optimizer=Adam(0.0001),metrics=['accuracy'])
print("Starting training process!")
print("-------------------------------------")
t_start = time.time()
n_iter = 10
for i in range(1,n_iter+1):
triplets = get_batch_hard(100,10,network)
loss = network_train.train_on_batch(triplets,None)
n_iteration += 1
if i % evaluate_every == 0:
print("\n ------------- \n")
print("[{3}] Time for {0} iterations: {1:.1f} mins,Train Loss: {2}".format(i,(time.time()-t_start)/60.0,loss,n_iteration))
probs,yprob = compute_probs(network,x_test_origin[:n_val,:,:],y_test_origin[:n_val])
错误信息:
AttributeError Traceback (most recent call last)
<ipython-input-22-e1501b44b94a> in <module>
17 for i in range(1,n_iter+1):
18 triplets = get_batch_hard(100,network)
---> 19 loss = network_train.train_on_batch(triplets,None)
20 n_iteration += 1
21 if i % evaluate_every == 0:
~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\training.py in train_on_batch(self,x,y,sample_weight,class_weight,reset_metrics,return_dict)
1725 class_weight)
1726 self.train_function = self.make_train_function()
-> 1727 logs = self.train_function(iterator)
1728
1729 if reset_metrics:
~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\eager\def_function.py in __call__(self,*args,**kwds)
826 tracing_count = self.experimental_get_tracing_count()
827 with trace.Trace(self._name) as tm:
--> 828 result = self._call(*args,**kwds)
829 compiler = "xla" if self._experimental_compile else "nonXla"
830 new_tracing_count = self.experimental_get_tracing_count()
~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\eager\def_function.py in _call(self,**kwds)
869 # This is the first call of __call__,so we have to initialize.
870 initializers = []
--> 871 self._initialize(args,kwds,add_initializers_to=initializers)
872 finally:
873 # At this point we kNow that the initialization is complete (or less
~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\eager\def_function.py in _initialize(self,args,add_initializers_to)
724 self._concrete_stateful_fn = (
725 self._stateful_fn._get_concrete_function_internal_garbage_collected( # pylint: disable=protected-access
--> 726 *args,**kwds))
727
728 def invalid_creator_scope(*unused_args,**unused_kwds):
~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\eager\function.py in _get_concrete_function_internal_garbage_collected(self,**kwargs)
2967 args,kwargs = None,None
2968 with self._lock:
-> 2969 graph_function,_ = self._maybe_define_function(args,kwargs)
2970 return graph_function
2971
~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\eager\function.py in _maybe_define_function(self,kwargs)
3359
3360 self._function_cache.missed.add(call_context_key)
-> 3361 graph_function = self._create_graph_function(args,kwargs)
3362 self._function_cache.primary[cache_key] = graph_function
3363
~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\eager\function.py in _create_graph_function(self,kwargs,override_flat_arg_shapes)
3204 arg_names=arg_names,3205 override_flat_arg_shapes=override_flat_arg_shapes,-> 3206 capture_by_value=self._capture_by_value),3207 self._function_attributes,3208 function_spec=self.function_spec,~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\framework\func_graph.py in func_graph_from_py_func(name,python_func,signature,func_graph,autograph,autograph_options,add_control_dependencies,arg_names,op_return_value,collections,capture_by_value,override_flat_arg_shapes)
988 _,original_func = tf_decorator.unwrap(python_func)
989
--> 990 func_outputs = python_func(*func_args,**func_kwargs)
991
992 # invariant: `func_outputs` contains only Tensors,CompositeTensors,~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\eager\def_function.py in wrapped_fn(*args,**kwds)
632 xla_context.Exit()
633 else:
--> 634 out = weak_wrapped_fn().__wrapped__(*args,**kwds)
635 return out
636
~\AppData\Roaming\Python\python37\site-packages\tensorflow\python\framework\func_graph.py in wrapper(*args,**kwargs)
975 except Exception as e: # pylint:disable=broad-except
976 if hasattr(e,"ag_error_Metadata"):
--> 977 raise e.ag_error_Metadata.to_exception(e)
978 else:
979 raise
AttributeError: in user code:
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\training.py:805 train_function *
return step_function(self,iterator)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\training.py:795 step_function **
outputs = model.distribute_strategy.run(run_step,args=(data,))
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\distribute\distribute_lib.py:1259 run
return self._extended.call_for_each_replica(fn,args=args,kwargs=kwargs)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\distribute\distribute_lib.py:2730 call_for_each_replica
return self._call_for_each_replica(fn,kwargs)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\distribute\distribute_lib.py:3417 _call_for_each_replica
return fn(*args,**kwargs)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\training.py:788 run_step **
outputs = model.train_step(data)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\training.py:758 train_step
self.compiled_metrics.update_state(y,y_pred,sample_weight)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\compile_utils.py:387 update_state
self.build(y_pred,y_true)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\compile_utils.py:318 build
self._metrics,y_true,y_pred)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\util\nest.py:1163 map_structure_up_to
**kwargs)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\util\nest.py:1258 map_structure_with_tuple_paths_up_to
func(*args,**kwargs) for args in zip(flat_path_gen,*flat_value_gen)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\util\nest.py:1258 <listcomp>
func(*args,*flat_value_gen)
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\util\nest.py:1161 <lambda>
lambda _,*values: func(*values),# discards the path arg.
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\compile_utils.py:418 _get_metric_objects
return [self._get_metric_object(m,y_t,y_p) for m in metrics]
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\compile_utils.py:418 <listcomp>
return [self._get_metric_object(m,y_p) for m in metrics]
C:\Users\Afaq\AppData\Roaming\Python\python37\site-packages\tensorflow\python\keras\engine\compile_utils.py:439 _get_metric_object
y_t_rank = len(y_t.shape.as_list())
AttributeError: 'nonetype' object has no attribute 'shape'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。