Как перенести знания из модели классификатора, которая наследует сеть кодирования видения - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь реализовать логику c точно так, как указано в FAQ по Keras:

Модель общего зрения

Эта модель использует один и тот же модуль обработки изображений на двух входах, чтобы Классифицируйте, являются ли две цифры MNIST одной и той же ди git или разными цифрами.

from keras.layers import Conv2D, MaxPooling2D, Input, Dense, Flatten
from keras.models import Model

# First, define the vision modules
digit_input = Input(shape=(27, 27, 1))
x = Conv2D(64, (3, 3))(digit_input)
x = Conv2D(64, (3, 3))(x)
x = MaxPooling2D((2, 2))(x)
out = Flatten()(x)

vision_model = Model(digit_input, out)

# Then define the tell-digits-apart model
digit_a = Input(shape=(27, 27, 1))
digit_b = Input(shape=(27, 27, 1))

# The vision model will be shared, weights and all
out_a = vision_model(digit_a)
out_b = vision_model(digit_b)

concatenated = keras.layers.concatenate([out_a, out_b])
out = Dense(1, activation='sigmoid')(concatenated)

classification_model = Model([digit_a, digit_b], out)

Я реализую что-то в точности как это и смог обучить классификационную модель ... но я хочу перенести свои веса обратно для vision_model.

если разница между обоими составляет только 1 измерение на входном слое или, скорее, один дополнительный входной узел, например, «личность» человека, которого я хочу подтвердить как изображение, есть ли способ, которым я могу удалить веса для этого «узла», когда я хочу перенести другие веса обратно в мою vision_model?

Спасибо

...