Я пытаюсь обучить нейронную сеть Mask RCNN (в частности, реализацию Matterport, которую можно найти здесь https://github.com/matterport/Mask_RCNN) без использования предварительно обученных предоставленных весов, это с нуля. Набор данных, который я используюОбщие объекты в контексте (можно найти здесь http://cocodataset.org/#home), и моя цель состоит в том, чтобы выполнить сегментацию идентичности.
Я пытался обучить сеть с предварительно обученными весами и, при оценке, метриками Средняя точностьи Среднее Напоминание, где не 0. Однако, когда я пытался тренироваться без загрузки предварительно обученных весов, AP и AR равны 0. Я проверил, и моя сеть обнаруживает некоторые классы (маски и ограничивающие блоки), поэтому я представляю, что проблема в том, чтоони не перекрывают основную истину, поэтому они не считаются совпадающими с ней.
Когда я иду на тензорную доску, чтобы проверить, что происходит с потерями, я вижу, что они явно не сходятся.из вас тренировали сеть без предварительно обученных весов? хотелось бы узнатькоторая должна быть правильной конфигурацией и графиком обучения для достижения точки доступа, близкой к той, которая представлена в их документе (https://arxiv.org/pdf/1703.06870.pdf)
Поскольку я не использую предварительно обученные веса, я попытался увеличитьэпохи для «головы» сети.Это реснет50.Я также пытался снизить скорость обучения.Однако до сих пор ни один из них не дал хорошего результата.
Это расписание поездов по умолчанию, где я пытался увеличить периоды первой стадии до 100, поскольку я не использую предварительно обученные веса
# Training - Stage 1
# Adjust epochs and layers as needed
print("Training network heads")
model.train(dataset_train, dataset_val,
learning_rate=config.LEARNING_RATE,
epochs=40,
layers='heads')
# Training - Stage 2
# Finetune layers from ResNet stage 4 and up
print("Training Resnet layer 4+")
model.train(dataset_train, dataset_val,
learning_rate=config.LEARNING_RATE / 10,
epochs=100,
layers='4+')
# Training - Stage 3
# Finetune layers from ResNet stage 3 and up
print("Training Resnet layer 3+")
model.train(dataset_train, dataset_val,
learning_rate=config.LEARNING_RATE / 100,
epochs=200,
layers='all')
Пример полученных графиков потерь