zzh8829 / yolov3-tf2

YoloV3 Implemented in Tensorflow 2.0
MIT License
2.51k stars 905 forks source link

训练的时候出现错误,请问该如何解决呢? #358

Open jiangxinufo opened 3 years ago

jiangxinufo commented 3 years ago

(yolov3-tf2-cpu) (venv) M:\MachineLearning\yolov3-tf2>python train.py --dataset ./data/voc2007_train_stone.tfrecord --val_dataset ./data/voc2007_val_stone.tfrecord --classes ./data/stone.names --num_classes 1 --mode fit --transfer dark net --batch_size 4 --epochs 20 --weights ./checkpoints/yolov3.tf --weights_num_classes 80 Traceback (most recent call last): File "train.py", line 199, in app.run(main) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\absl\app.py", line 303, in run _run_main(main, args) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\absl\app.py", line 251, in _run_main sys.exit(main(argv)) File "train.py", line 194, in main validation_data=val_dataset) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 819, in fit use_multiprocessing=use_multiprocessing) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 235, in fit use_multiprocessing=use_multiprocessing) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 593, in _process_training_inputs use_multiprocessing=use_multiprocessing) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 706, in _process_inputs use_multiprocessing=use_multiprocessing) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py", line 702, in init x = standardize_function(x) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 684, in standardize_function return dataset.map(map_fn, num_parallel_calls=dataset_ops.AUTOTUNE) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\data\ops\dataset_ops.py", line 1591, in map self, map_func, num_parallel_calls, preserve_cardinality=True) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\data\ops\dataset_ops.py", line 3926, in init use_legacy_function=use_legacy_function) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\data\ops\dataset_ops.py", line 3147, in init self._function = wrapper_fn._get_concrete_function_internal() File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\eager\function.py", line 2395, in _get_concrete_function_internal *args, *kwargs) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\eager\function.py", line 2389, in _get_concrete_function_internal_garbage_collected graphfunction, , _ = self._maybe_define_function(args, kwargs) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\eager\function.py", line 2703, in _maybe_define_function graph_function = self._create_graph_function(args, kwargs) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\eager\function.py", line 2593, in _create_graph_function capture_by_value=self._capture_by_value), File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\framework\func_graph.py", line 978, in func_graph_from_py_func func_outputs = python_func(func_args, *func_kwargs) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\data\ops\dataset_ops.py", line 3140, in wrapper_fn ret = _wrapper_helper(args) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\data\ops\dataset_ops.py", line 3082, in _wrapper_helper ret = autograph.tf_convert(func, ag_ctx)(*nested_args) File "C:\Users\jx-dl.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\autograph\impl\api.py", line 237, in wrapper raise e.ag_error_metadata.to_exception(e) ValueError: in converted code:

C:\Users\jx-dl\.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py:677 map_fn
    batch_size=None)
C:\Users\jx-dl\.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\training.py:2410 _standardize_tensors
    exception_prefix='input')
C:\Users\jx-dl\.conda\envs\yolov3-tf2-cpu\lib\site-packages\tensorflow_core\python\keras\engine\training_utils.py:573 standardize_input_data
    'with shape ' + str(data_shape))

_**ValueError: Error when checking input: expected input to have 4 dimensions, but got array with shape (416, 416, 3)**_

WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-8 W0427 10:47:10.158201 11080 util.py:144] Unresolved object in checkpoint: (root).layer-8 WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-9 W0427 10:47:10.158201 11080 util.py:144] Unresolved object in checkpoint: (root).layer-9 WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-10 W0427 10:47:10.158201 11080 util.py:144] Unresolved object in checkpoint: (root).layer-10 WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-11 W0427 10:47:10.158201 11080 util.py:144] Unresolved object in checkpoint: (root).layer-11 WARNING:tensorflow:A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e. g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details. W0427 10:47:10.158201 11080 util.py:152] A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details.