如图 1 所示,我有 3 个模型,每个模型都适用于特定领域。
推理是连续的:
由于python的多进程库,我尝试并行化这3个模型的调用,但它非常不稳定,不建议这样做。
这是我必须确保同时完成这一切的想法:
由于这 3 个模型共享一个共同的预训练模型,因此我想制作一个具有多个输入和多个输出的单一模型。
就像在推理过程中一样,我将调用一个模型,该模型将同时执行所有 3 个操作。
我看到使用 KERAS 的功能 API,这是可能的,但我不知道如何做到这一点。数据集的输入具有相同的维度。这些是 (200,200,3) 的图片。
如果有人有一个共享通用结构的多输入多输出模型的示例,我没问题。
这是我的代码示例,但它返回错误,因为layers. concatenate (...)该行传播模型未考虑的形状EfficientNet。
age_inputs = layers.Input(shape=(IMG_SIZE, IMG_SIZE, 3), name="age_inputs")
gender_inputs = layers.Input(shape=(IMG_SIZE, IMG_SIZE, 3)
, name="gender_inputs")
emotion_inputs = layers.Input(shape=(IMG_SIZE, IMG_SIZE, 3),
name="emotion_inputs")
inputs = layers.concatenate([age_inputs, gender_inputs, emotion_inputs])
inputs = layers.Conv2D(3, (3, 3), activation="relu")(inputs)
model = EfficientNetB0(include_top=False,
input_tensor=inputs, weights="imagenet")
model.trainable = False
inputs = layers.GlobalAveragePooling2D(name="avg_pool")(model.output)
inputs = layers.BatchNormalization()(inputs)
top_dropout_rate = 0.2 …Run Code Online (Sandbox Code Playgroud)