根据输入的张量来访问keras中间层的输出

时间:2018-03-02 19:25:46

标签: python computer-vision keras keras-layer

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()的情况下访问有关输入的功能?

0 个答案:

没有答案