Mask RCNN的权重初始化,无需使用Imagenet / COCO的预训练权重

时间:2019-11-13 11:24:51

标签: python-3.x tensorflow deep-learning

# define the model

model = MaskRCNN(mode='training', model_dir='./', config=config)

# load weights (mscoco) and exclude the output layers

model.load_weights('mask_rcnn_coco.h5', by_name=True, exclude=["mrcnn_class_logits", "mrcnn_bbox_fc",  "mrcnn_bbox", "mrcnn_mask"])
# train weights (output layers or 'heads')

model.train(train_set, test_set, learning_rate=config.LEARNING_RATE, epochs=2, layers='heads')

我有一些含有肌瘤的医学影像。 我希望应用实例分割或对象检测。 我可能必须使用掩码Rcnn进行实例分割和对象检测。是否可以从头开始设计网络而不是使用迁移学习? 我的意思是对数据的权重进行随机初始化,而不是使用从imagenet数据或coco数据得出的权重。

2 个答案:

答案 0 :(得分:1)

从命令行开始,而不是像这样从预先训练的COCO权重开始训练模型

python my_model.py train --dataset=/path/dataset --weights=coco

执行以下行。

python my_model.py train --dataset=/path/dataset

要从第一层开始训练,请执行以下代码。

model.train(dataset_train, dataset_val,learning_rate=config.LEARNING_RATE,epochs=10, layers='all')

答案 1 :(得分:0)

您是否可以不进行model.load_weights()行就直接运行培训?当我这样做时,对我来说似乎运行良好。我假设使用随机初始权重运行它。它的结果并没有像从coco开始时那样好,但是我敢肯定,对于某些数据集,这是预期的行为。