#python #tensorflow #keras #coco
#python #tensorflow #keras #coco
Вопрос:
Несмотря на то, что я пытался, я не смог решить эту ошибку.
https://www.youtube.com/watch?v=GSDbfGsxruA
Я почти добрался до последнего шага, когда добавил маску RCNN, но я застрял здесь.
Журнал ошибок
AttributeError Traceback (most recent call last)
<ipython-input-4-138183a2a830> in <module>
1 # Create model object in inference mode.
----> 2 model = modellib.MaskRCNN(mode="inference", model_dir=MODEL_DIR, config=config)
3
4 # Load weights trained on MS-COCO
5 model.load_weights(COCO_MODEL_PATH, by_name=True)
~**Mask_RCNNmrcnnmodel.py in __init__(self, mode, config, model_dir)
1838 self.model_dir = model_dir
1839 self.set_log_dir()
-> 1840 self.keras_model = self.build(mode=mode, config=config)
1841
1842 def build(self, mode, config):
~**Mask_RCNNmrcnnmodel.py in build(self, mode, config)
2044 # output is [batch, num_detections, (y1, x1, y2, x2, class_id, score)] in
2045 # normalized coordinates
-> 2046 detections = DetectionLayer(config, name="mrcnn_detection")(
2047 [rpn_rois, mrcnn_class, mrcnn_bbox, input_image_meta])
2048
**anaconda3libsite-packagestensorflowpythonkerasenginebase_layer.py in __call__(self, *args, **kwargs)
949 # >> model = tf.keras.Model(inputs, outputs)
950 if _in_functional_construction_mode(self, inputs, args, kwargs, input_list):
--> 951 return self._functional_construction_call(inputs, args, kwargs,
952 input_list)
953
**anaconda3libsite-packagestensorflowpythonkerasenginebase_layer.py in _functional_construction_call(self, inputs, args, kwargs, input_list)
1088 layer=self, inputs=inputs, build_graph=True, training=training_value):
1089 # Check input assumptions set after layer building, e.g. input shape.
-> 1090 outputs = self._keras_tensor_symbolic_call(
1091 inputs, input_masks, args, kwargs)
1092
**anaconda3libsite-packagestensorflowpythonkerasenginebase_layer.py in _keras_tensor_symbolic_call(self, inputs, input_masks, args, kwargs)
820 return nest.map_structure(keras_tensor.KerasTensor, output_signature)
821 else:
--> 822 return self._infer_output_signature(inputs, args, kwargs, input_masks)
823
824 def _infer_output_signature(self, inputs, args, kwargs, input_masks):
**anaconda3libsite-packagestensorflowpythonkerasenginebase_layer.py in _infer_output_signature(self, inputs, args, kwargs, input_masks)
861 # TODO(kaftan): do we maybe_build here, or have we already done it?
862 self._maybe_build(inputs)
--> 863 outputs = call_fn(inputs, *args, **kwargs)
864
865 self._handle_activity_regularization(inputs, outputs)
**anaconda3libsite-packagestensorflowpythonautographimplapi.py in wrapper(*args, **kwargs)
668 except Exception as e: # pylint:disable=broad-except
669 if hasattr(e, 'ag_error_metadata'):
--> 670 raise e.ag_error_metadata.to_exception(e)
671 else:
672 raise
Ошибка атрибута: в пользовательском коде:
**Mask_RCNNmrcnnmodel.py:810 call *
detections_batch = utils.batch_slice(
**Mask_RCNNmrcnnutils.py:820 batch_slice *
output_slice = graph_fn(*inputs_slice)
**Mask_RCNNmrcnnmodel.py:720 refine_detections_graph *
keep = tf.sets.set_intersection(tf.expand_dims(keep, 0),
AttributeError: module 'tensorflow._api.v2.sets' has no attribute 'set_intersection'
model.py устроено в соответствии с здесь.
https://github.com/matterport/Mask_RCNN/issues/1070#issuecomment-740430758
Комментарии:
1. Это может быть связано с github.com/tensorflow/tensorflow/issues/43982
Ответ №1:
В соответствии с решением, предоставленным СалахРахими на GitHub в отношении той же проблемы, пользователь смог решить проблему, выполнив следующие изменения.
Основной проблемой здесь была версия тензорного потока.
mrcnn
не работает с tensorflow.2.0, поэтому мне пришлось удалить эту версию и переустановить версию 1.15. Обратите внимание, что невозможно установить версию 1.15 в Python3.8, поэтому я переключился на Python 3.7, что позволило мне установить tensorflow 1.15. Теперь эта проблема решена, и я смог запустить программу.
Ответ №2:
Мне удалось решить ее, выполнив следующие замены, описанные по этой ссылке: https://github.com/tensorflow/tensorflow/issues/43982.
"tf.sets.set_intersection(...)
Для:
tf.compat.v1.sets.set_intersection(...)
и:
import tensorflow as tf
Для:
import tensorflow.compat.v1 as tf