Я столкнулся с ошибкой "trainable = false".
Когда я разработал код со структурой,
модель имеет две подразделяемые модели (модель FC, модель CN), которые соединены последовательно.
После тренировки только модели FC, я хочу заморозить FC и тренировать FC + CN, всю модель.
Однако заморозка с обучаемым не работает, и выходит что-то странное.
Когда не замерзнуть:
model.FCnetwork.trainable = True
model.FCnetwork.summary()
Total params: 2,584,576
Trainable params: 2,578,432
Non-trainable params: 6,144
и при замораживании:
model.FCnetwork.trainable = False
model.FCnetwork.summary()
Total params: 5,163,008
Trainable params: 2,578,432
Non-trainable params: 2,584,576
Общее количество параметров увеличено. И, конечно, заморозка не работает.
Это мой разработанный класс
class MYMAP():
def __init__(self):
# Input shape
optimizer = optimizers.Adam()
self.CNnetwork= self.Convolutional_network()
self.CNnetwork.compile()
self.FCnetwork = self.Fullyconnected_network()
self.FCnetwork.compile(loss='mse',
optimizer=optimizer)
z = Input(shape=(input_size,))
img = self.FCnetwork(z)
valid = self.CNnetwork(img)
self.combined = Model(z, valid)
optimizer_DG = optimizers.Adam()
self.combined.compile(loss='mse', optimizer=optimizer_DG)
def Fullyconnected_network(self):
noise = Input(shape=(input_size,))
img = model(noise)
return Model(noise, img)
def Convolutional_network(self):
img = Input(shape=(image_size_vectored,))
validity = model(img)
return Model(img, validity)
Мне было довольно сложно найти способ решить.
Большое спасибо.