Что, безусловно, вы можете сделать.
При чтении файла 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"]
...
Вы можете проверить, что веса фактически замерзли, проверив график тензорного потока.
Как показано, веса больше не работают train
.
Выбирая конкретные шаблоны для freeze_variables
, вы можете очень гибко замораживать переменные(вы можете получить имена слоев из графика тензорного потока).
Кстати, здесь - фактическая операция фильтрации.