在自定义数据问题上训练 MaskRCNN

时间:2020-12-27 12:22:26

标签: python mask tensor

我正在尝试在自定义平面图数据集上训练 Mask RCNN。我正在关注 Medium 上的这篇文章:https://medium.com/analytics-vidhya/a-simple-guide-to-maskrcnn-custom-dataset-implementation-27f7eab381f2 .

在注释格式和包方面遇到一些问题后,我开始训练模型。但是,我偶然发现了以下错误代码:

Traceback (most recent call last):
  File "custom.py", line 391, in <module>
    train(model)
  File "custom.py", line 222, in train
    layers='heads')
  File "C:...\Custom_MaskRCNN-master\mrcnn\model.py", line 2356, in train
    self.compile(learning_rate, self.config.LEARNING_MOMENTUM)
  File "C:...\Custom_MaskRCNN-master\mrcnn\model.py", line 2201, in compile
    self.keras_model.add_metric(loss, name)
AttributeError: 'Model' object has no attribute 'add_metric'

我找不到有关此错误的任何信息,希望有人可以提供帮助或指示我如何解决此问题。

2 个答案:

答案 0 :(得分:1)

正如我们所见,需求文件没有指定确切的 TF 和 Keras 版本,而只是指定了一个下限。

#requirements.txt
numpy
scipy
Pillow
cython
matplotlib
scikit-image
tensorflow>=1.3.0
keras>=2.0.8
opencv-python
h5py
imgaug
IPython[all]

当您的 env 创建时,最新版本的 TensorFlow 和 Keras 将被安装。 'add_metric' 方法可能会被弃用或移至已安装的最新版本中的另一个类,因为这些框架已经进行了主要版本更新。请注意,与本文相关的 repo 的作者在过去两年内没有对其进行更新。甚至此 repo 所基于的原始 repo 的作者也尚未对其进行更新(原始 repo:https://github.com/matterport/Mask_RCNN)。一旦解决了当前的错误,您很可能会面临更多错误。

解决此问题的一种方法是将 TF 和 Keras 版本降级(tensorflow 到 1.3.0,keras 到 2.0.8 可能会解决它)。

最好的做法是使用 TensorFlow 提供的官方转换工具移植代码,将 TF1.x 代码转换为 TF2.x 或使用已转换代码的存储库。

具有更新的 TF 和 Keras 的 MaskRCNN 存储库:https://github.com/ahmedfgad/Mask-RCNN-TF2

希望有帮助!干杯:)

答案 1 :(得分:0)

更改该行如下,

来自:

self.keras_model.add_metric(loss, name)

致:

self.keras_model.metrics_tensors.append(loss)