Замена слоя существующей модели в TF Keras - PullRequest
2 голосов
/ 18 февраля 2020

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

Я могу сделать это следующим образом, если модель полностью последовательная:

import tensorflow as tf

base_model = tf.keras.applications.VGG16(input_shape=(720, 1280, 3), weights=None, include_top=False)

# Add spectral normalization
base_model_new = tf.keras.models.Sequential()
for layer in base_model.layers:
    if isinstance(layer, tf.keras.layers.Conv2D):
        spec_norm_layer = SpectralNormalization(layer)
        base_model_new.add(spec_norm_layer)
    else:
        base_model_new.add(layer)

input = tf.keras.Input(shape=(720, 1280, 3), name='image')
x = base_model_new(input)

model = tf.keras.models.Model(inputs=[input], outputs=x, name='test')

Однако этот метод не работает, если для Пример использования Re sNet, где есть слои Add или Concatenate, которые ожидают список входных данных. Как решить это для ResNets?

...