【发布时间】:2021-04-22 17:31:00
【问题描述】:
我创建了四个 3D-CNN 模型,每个模型都在一组不同(但相关)的图像上进行训练,这样每组都具有相同对象的不同视角的图像。 (即:n 个对象有来自 4 个不同视角的图像,每个模型都关联到一个视角)。
def get_model(width=128, height=128, depth=4):
inputs = Input((width, height, depth, 3))
x = Conv3D(filters=64, kernel_size=8,padding='same', activation="relu")(inputs)
x = MaxPool3D(pool_size=2,data_format= "channels_first", padding='same')(x)
x = BatchNormalization()(x)
x = Conv3D(filters=256, kernel_size=3,padding='same', activation="relu")(x)
x = MaxPool3D(pool_size=2,data_format= "channels_first", padding='same')(x)
x = BatchNormalization()(x)
x = GlobalAveragePooling3D()(x)
x = Dense(units=512, activation="relu")(x)
x = Dropout(0.3)(x)
outputs = Dense(units=2, activation="sigmoid")(x)
# Define the model.
model = keras.Model(inputs, outputs)
return model
我现在有四个预训练模型,我想通过删除最后一个密集层(sigmoid)来组合它们,而是连接所有四个模型的密集层,然后是一个激活函数(即:sigmoid) .我想保留四个输入层,这样每个输入层都会从一个角度拍摄一个物体的图像。我已经看到了将 model_1 的输出层连接到 model_2 的输入层的示例,但是,我不确定如何处理四个单独的输入层并在模型末尾进行连接。
【问题讨论】:
标签: tensorflow machine-learning keras neural-network conv-neural-network