相关疑难解决方法(0)

具有 Keras 功能 API 的多输入多输出模型

如图 1 所示,我有 3 个模型,每个模型都适用于特定领域。

这 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)

python deep-learning keras tensorflow functional-api

12
推荐指数
1
解决办法
2万
查看次数