Как использовать YOLOv4 3.0.0 в тензорном потоке 2.2.n?
Я установил yolov4 3.0.0 и tensorflow 2.2.0
!python3 -m pip install yolov4==3.0.0
Я выполнил yolov4 согласно описанию на странице ( https://wiki.loliot.net/docs/lang/python/libraries/yolov4/python-yolov4-about/ ).
import cv2
from yolov4.tf import YOLOv4
yolo = YOLOv4()
yolo.config.parse_names("coco.names")
yolo.config.parse_cfg("yolov4-tiny.cfg")
yolo.make_model()
yolo.load_weights("yolov4-tiny.weights", weights_type="yolo")
yolo.summary(summary_type="yolo")
yolo.summary()
но я получил эту ошибку
ValueError Traceback (most recent call last)
<ipython-input-1-0562cf94c007> in <module>()
8 yolo.config.parse_cfg("yolov4-tiny.cfg")
9
---> 10 yolo.make_model()
11 yolo.load_weights("yolov4-tiny.weights", weights_type="yolo")
12 yolo.summary(summary_type="yolo")
2 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/autograph/impl/api.py in wrapper(*args, **kwargs)
263 except Exception as e: # pylint:disable=broad-except
264 if hasattr(e, 'ag_error_metadata'):
--> 265 raise e.ag_error_metadata.to_exception(e)
266 else:
267 raise
ValueError: in user code:
/usr/local/lib/python3.7/dist-packages/yolov4/tf/model.py:74 call *
output.append(layer(x))
/usr/local/lib/python3.7/dist-packages/yolov4/tf/layers/convolutional_layer.py:54 call *
if training and self.trainable:
/usr/local/lib/python3.7/dist-packages/tensorflow/python/autograph/operators/control_flow.py:924 if_stmt
basic_symbol_names, composite_symbol_names)
/usr/local/lib/python3.7/dist-packages/tensorflow/python/autograph/operators/control_flow.py:962 tf_if_stmt
error_checking_orelse)
/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/deprecation.py:507 new_func
return func(*args, **kwargs)
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/control_flow_ops.py:1177 cond
return cond_v2.cond_v2(pred, true_fn, false_fn, name)
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/cond_v2.py:93 cond_v2
verify_captures(_COND, [true_graph, false_graph])
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/cond_v2.py:830 verify_captures
b1name=branch_names[i]))
ValueError: Tensor batch_normalization_trainable:0 in true_fn is accessed from false_fn.
Я подтвердил, что в tf 2.3.0, 2.4.1 он будет выполняться правильно.
Почему эта ошибка возникает только в tf 2.2.n?