我正在尝试根据此处提供的官方 MaskRCNN 模型训练 Mask RCNN 模型:tensorflow/models。
以下是我遵循的步骤:
# my_maskrcnn.yaml
train:
train_file_pattern: "data/<dataset_name>/train/tfrecords/train.tfrecord-*"
batch_size: 2
eval:
eval_file_pattern: "data/<data_set_name>/val/tfrecords/val.tfrecord-*"
batch_size: 2
predict:
batch_size: 2
architecture:
num_classes: 2
maskrcnn_parser:
output_size: [512, 512]
Run Code Online (Sandbox Code Playgroud)python path/to/models/official/vision/detection/main.py \
--strategy_type=one_device \
--model_dir=models_mask_rcnn \
--mode=train \
--config_file="mymaskrcnn.yaml" \
--model=mask_rcnn
Run Code Online (Sandbox Code Playgroud)但我收到以下错误:
Traceback (most recent call last):
File ".../models/official/vision/detection/main.py", line 255, in <module>
app.run(main)
File ".../lib/python3.7/site-packages/absl/app.py", line 299, in run
_run_main(main, args)
File ".../lib/python3.7/site-packages/absl/app.py", line 250, in _run_main …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Faster-RCNN 架构加载检查点并填充模型权重(Faster R-CNN ResNet50 V1 640x640准确地说,从这里开始。我正在尝试加载该网络的权重,类似于RetinaNet 示例笔记本中的操作方式,其中它们请执行下列操作:
fake_box_predictor = tf.compat.v2.train.Checkpoint(
_base_tower_layers_for_heads=detection_model._box_predictor._base_tower_layers_for_heads,
_box_prediction_head=detection_model._box_predictor._box_prediction_head,
)
fake_model = tf.compat.v2.train.Checkpoint(
_feature_extractor=detection_model._feature_extractor,
_box_predictor=fake_box_predictor
)
ckpt = tf.compat.v2.train.Checkpoint(model=fake_model)
ckpt.restore(checkpoint_path).expect_partial()
Run Code Online (Sandbox Code Playgroud)
我正在尝试为我想要使用的 Faster-RCNN 网络获取类似的检查点加载机制,但是 , 等属性_base_tower_layers_for_heads仅存_box_prediction_head在于示例中使用的架构,而不适用于其他任何东西。
我也找不到关于Checkpoint针对我的特定用例填充模型的哪些部分的文档。非常感谢有关如何解决此问题的任何帮助!