# 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数据得出的权重。
答案 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开始时那样好,但是我敢肯定,对于某些数据集,这是预期的行为。