Конечно, вы можете это сделать.
Прочитав файл proto для обучения, можно это поле с именем freeze_variables
, это должен быть список, содержащий все переменные, которые вы хотите заморозить, например исключая их во время обучения.
Предположим, вы хотите заморозить веса из первого узкого места в первой единице первого блока, вы можете сделать это, добавив
freeze_variables: ["resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights"]
Итак, ваша конфигурация выглядит так:
train_config: {
batch_size: 1
freeze_variables: ["resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights"]
...
Вы можете убедиться, что веса действительно заморожены, проверив граф тензорного потока. ![введите описание изображения здесь](https://i.stack.imgur.com/Qr8ef.png)
Как показано, веса больше не работают train
.
Выбирая определенные шаблоны для freeze_variables
, вы можете очень гибко замораживать переменные (вы можете получить имена слоев из графика тензорного потока).
Кстати, здесь - это фактическая операция фильтрации.
person
danyfang
schedule
03.05.2019
How to freeze layers in training using TF OD API?
- person danyfang   schedule 07.05.2019