Я пытаюсь использовать трансферное обучение в тензорном потоке. Я знаю парадигму высокого уровня
base_model=MobileNet(weights='imagenet',include_top=False) #imports the
mobilenet model and discards the last 1000 neuron layer.
x=base_model.output
x=GlobalAveragePooling2D()(x)
x=Dense(1024,activation='relu')(x) #we add dense layers so that the model can learn more complex functions and classify for better results.
x=Dense(1024,activation='relu')(x) #dense layer 2
x=Dense(512,activation='relu')(x) #dense layer 3
preds=Dense(120,activation='softmax')(x) #final layer with softmax activation
и затем один компилирует это
model=Model(inputs=base_model.input,outputs=preds)
Однако я хочу, чтобы до base_model.input было несколько других слоев. Я хочу добавить состязательный шум к изображениям, которые входят, и несколько других вещей. Так эффективно я хочу знать, как:
base_model=MobileNet(weights='imagenet',include_top=False) #imports the
mobilenet model and discards the last 1000 neuron layer
x = somerandomelayers(x_in)
base_model.input = x_in
x=base_model.output
x=GlobalAveragePooling2D()(x)
x=Dense(1024,activation='relu')(x) #we add dense layers so that the model can learn more complex functions and classify for better results.
x=Dense(1024,activation='relu')(x) #dense layer 2
x=Dense(512,activation='relu')(x) #dense layer 3
preds=Dense(120,activation='softmax')(x) #final layer with softmax activation
model=Model(inputs=x_in,outputs=preds)
но строка base_model.input = x_in
, по-видимому, не способ сделать это, поскольку она выдает can't set attribute
ошибку. Как мне добиться желаемого поведения?