Изменить разрешение после тренировки (есть предварительно обученная модель) - PullRequest
0 голосов
/ 24 апреля 2018

Читая документ YOLOv1 , упоминается [1], что первая часть сети, то есть эти сверточные слои, сначала обучаются с входным разрешением 224x224 в наборе данных ImageNet. После этого модель преобразуется для выполнения обнаружения, при котором входное разрешение увеличивается с 224х224 до 448х448. Мне интересно, как можно сделать это преобразование: если вход сети сначала 224x224, то число параметров должно отличаться от 448x448, что означает, что сверточные слои, обученные в наборе данных ImageNet, не могут быть повторно использованы для обнаружения .

Что мне здесь не хватает?

[1]: в конце раздела «2.2 Обучение»

1 Ответ

0 голосов
/ 29 апреля 2018

, если вход сети сначала 224x224, то число параметров должно отличаться от 448x448

Это ваше недопонимание.

Сверткаоперация не имеет ограничений по размеру ввода и, следовательно, по размеру вывода.Когда вы тренируете CNN, в конце которого есть полностью соединенные слои, для классификации, вы ограничиваете входные данные фиксированным размером, поскольку число входных данных, которое может принять слой FC, является фиксированным.

Но если вы удалите головку классификации из сети и будете использовать только обученные веса CNN в качестве экстрактора признаков, вы заметите, что при вводе любого измерения (> = измерение, в котором обучалась сеть),выходными данными будет набор карт объектов, пространственный экстент которых увеличивается с увеличением пространственного экстента входных данных.

В YOLO, следовательно, сеть изначально обучена выполнять классификацию с разрешением 224x224.Таким образом, веса операции свертки + веса слоев FC в конце научились извлекать и классифицировать значимые элементы.

После этой первой тренировки слои FC выбрасываются, и только часть извлечения признаковсохраняется.Таким образом, вы можете использовать хороший инструмент извлечения объектов, который уже научился извлекать значимые объекты сверточным способом (например, создавая в качестве выходных данных не вектор объектов, а карту объектов, который может быть подвергнут последующей обработке, как YOLO)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...