Я использую код для создания собственного Re sNet и использую код на этой странице Github в качестве ввода. Однако это написано в tenorflow, и я работаю с tenorflow.keras. Большую часть кода я смог преобразовать, однако я застрял при добавлении двух путей вместе в сверточном слое.
Это код тензорного потока
X = Add()([X, X_shortcut])
Это функция Я создаю в tenorflow.keras
def Convolutional_Block(model, f, filters, stage, block, s = 2):
F1, F2, F3 = filters
model_shortcut = model
#### MAIN PATH ####
# First component
model.add(Conv2D(F1, (1,1), strides = (s,s))) # kernel_initializer = glorot_uniform(seed = 0)
model.add(BatchNormalization(axis = 3))
model.add(Activation("relu"))
# Second component
model.add(Conv2D(F2, kernel_size=(f,f), strides = (1,1), padding = "same")) #, kernel_initializer = glorot_uniform(seed = 0)
model.add(BatchNormalization(axis = 3))
model.add(Activation("relu"))
# Thrid component
model.add(Conv2D(F3, kernel_size=(1,1), strides = (1,1), padding = "valid"))#, kernel_initializer = glorot_uniform(seed = 0)
model.add(BatchNormalization(axis = 3))
#### SHORTCUT PATH ####
model_shortcut.add(Conv2D(filters = F3, kernel_size = (1, 1), strides = (s,s), padding = 'valid')) #, kernel_initializer = glorot_uniform(seed=0)
model_shortcut.add(BatchNormalization(axis = 3))
ЗДЕСЬ Я ХОЧУ СОКРАСИТЬ (?) МОДЕЛИ
model.add(Model(model_shortcut))
model.add(Activation('relu'))
return model
Как мне это сделать? Я вижу в этом добавление слоев моей модели ярлыков в мою новую модель, чтобы мой код имел смысл, но, похоже, он не работает.