Deep Domain Confusion architecture
我正在尝试实现图片中提出的模型。这个想法是通过模型发送标记数据和未标记数据,访问名为' adapt_layer'的中间层输出。基于数据(标记,未标记),并计算自定义损失。
我查看了Keras的API并且到目前为止已经成功实现了:
model = load_model(weight_path)
inp = model.input
out = model.layers[-2].output
adapt_layer = Dense(512, activation='sigmoid', name='adapt_layer')(out)
preds = Dense(19, activation='softmax', name='predictions', activity_regularizer=regularizers.l2(0.01))(adapt_layer)
vision_model = Model(inputs=inp, outputs=preds)
labeled_input = Input(shape=(None, 1024, 1024, 3))
unlabeled_input= Input(shape=(None, 1024, 1024, 3))
preds_labeled = vision_model(labeled_input)
labeled_features = vision_model(labeled_input).layers[-2].output
unlabeled_features = vision_model(unlabeled_input).layers[-2].output
根据架构,我们计算标记和未标记数据的特征之间的域丢失,因此我需要访问它们。有没有办法在不制作其他模型和使用.predict()的情况下访问有关输入的功能?