Как добавить дополнительный канал к существующей предварительно обученной модели resnet50 в tesorflow_hub? - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь использовать предварительно обученную модель Resnet50 из tenorflow_hub. Тем не менее, я намерен изменить первый слой свертки, чтобы иметь возможность принимать 4-канальный тензор (изображение + двоичная маска), где веса сети инициализируются из предварительно обученной модели, за исключением недавно добавленных фильтров, которые инициализируются случайным образом. .

Основной код, используемый для извлечения весов Resnet50:

import tensorflow_hub as hub
import numpy as np
module = hub.Module("https://tfhub.dev/google/imagenet/resnet_v1_50/feature_vector/3")
batch = 2
channels = 3
height, width = hub.get_expected_image_size(module)
images = np.zeros((batch, height, width, channels))
features = module(dict(images=images), signature="image_feature_vector", as_dict=True)

1 Ответ

0 голосов
/ 01 октября 2019

Для такой модификации сетевой архитектуры лучше всего напрямую поработать с исходным кодом TensorFlow. Существует несколько реализаций ResNet-50 для TensorFlow, включая (в произвольном порядке)

См. соответствующие репозитории для инструкций по восстановлению предварительно обученного контрольно-пропускного пункта. (Если вы отключите модули Hub, вы потеряете эту прекрасную автоматизацию.)

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