在自定义数据问题上训练 MaskRCNN
Training MaskRCNN on custom data issue
我正在尝试在平面图的自定义数据集上训练 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'
我找不到关于此错误的任何信息,希望有人能提供帮助或指示我如何解决此问题。
正如我们所见,需求文件没有指定确切的 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]
创建环境时,会安装最新版本的 TensorFlow 和 Keras。 'add_metric' 方法可能已弃用或移至已安装的最新版本中的另一个 class,因为这些框架已进行主要版本更新。请注意,与本文相关的 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 或使用代码已经在其中的 repo已转换。
具有更新的 TF 和 Keras 的 MaskRCNN 回购:https://github.com/ahmedfgad/Mask-RCNN-TF2
希望对您有所帮助!干杯:)
按如下方式更改该行,
发件人:
self.keras_model.add_metric(loss, name)
收件人:
self.keras_model.metrics_tensors.append(loss)
我正在尝试在平面图的自定义数据集上训练 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'
我找不到关于此错误的任何信息,希望有人能提供帮助或指示我如何解决此问题。
正如我们所见,需求文件没有指定确切的 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]
创建环境时,会安装最新版本的 TensorFlow 和 Keras。 'add_metric' 方法可能已弃用或移至已安装的最新版本中的另一个 class,因为这些框架已进行主要版本更新。请注意,与本文相关的 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 或使用代码已经在其中的 repo已转换。
具有更新的 TF 和 Keras 的 MaskRCNN 回购:https://github.com/ahmedfgad/Mask-RCNN-TF2
希望对您有所帮助!干杯:)
按如下方式更改该行,
发件人:
self.keras_model.add_metric(loss, name)
收件人:
self.keras_model.metrics_tensors.append(loss)