是否可以从一半的 UNet 中提取特征?

Is it possible to extract features from half of a UNet?

我有一个 3D UNet,我训练了几千个时期,现在我想在类似的数据集上做一些聚类。但是,首先我想将体积分解为一个特征集数组,并对特征而不是体积数组执行聚类。我想要 conv3d_9 (Conv3D)

的输出形状

是否可以仅从 UNet 的下半部分获取特征来提取这些特征?

假设您已经训练了您的模型,您可以使用函数 API 来实现这一点。

例如,

from tensorflow.keras.models import Model
feature_extraction_model = Model(inputs= model.inputs, outputs=model.layers[-18].output)
features_prediction = feature_extraction_model(input_3d_image)

注意-18conv3d_9的索引。

您可以通过如下所示的索引或名称获取中间层

feature = model.get_layer('conv3d_9d')