Как изменить заблокированные слои в обучении с помощью API обнаружения объектов Tensorflow? - PullRequest
0 голосов
/ 03 мая 2019

Я использую API обнаружения объектов Tensorflow в обучении.

В каком файле замерзшие слои определены для точной настройки модели в процессе обучения. Мне нужно поэкспериментировать с изменением застывших слоев при тонкой настройке.

Например, если я использую Конфигурация Resnet50 , где я могу изменить заблокированные слои?

1 Ответ

1 голос
/ 03 мая 2019

Что, безусловно, вы можете сделать.

При чтении файла proto для обучения есть поле с именем freeze_variables, это должен быть список, содержащий все переменные, которые выхотите заморозить, например, исключив их во время тренировки.

Предположим, что вы хотите заморозить веса из первого узкого места в первом блоке первого блока, вы можете сделать это, добавив

freeze_variables: ["resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights"]

так что ваш конфиг flie выглядит следующим образом:

train_config: {
  batch_size: 1
  freeze_variables: ["resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights"]
  ...

Вы можете проверить, что веса фактически замерзли, проверив график тензорного потока.enter image description here

Как показано, веса больше не работают train.

Выбирая конкретные шаблоны для freeze_variables, вы можете очень гибко замораживать переменные(вы можете получить имена слоев из графика тензорного потока).

Кстати, здесь - фактическая операция фильтрации.

...