Machine learning keras中的resnet50和densenet121合奏

Machine learning keras中的resnet50和densenet121合奏,machine-learning,computer-vision,deep-learning,keras,Machine Learning,Computer Vision,Deep Learning,Keras,我想对resnet50和desnsenet121进行集成,但出现错误: Graph disconnected:无法获取“input_8”层的张量张量值(“input_8:0”,shape=(?,224,224,3),dtype=float32)。访问以下以前的层时没有问题:[] 下面是我的加密代码: 来自keras导入应用程序的 从keras.layers导入稠密、衰减、展平、Conv2D、MaxPool2D 从keras.models导入模型,输入 #从keras.engine.topolog

我想对resnet50和desnsenet121进行集成,但出现错误:

Graph disconnected:无法获取“input_8”层的张量张量值(“input_8:0”,shape=(?,224,224,3),dtype=float32)。访问以下以前的层时没有问题:[]

下面是我的加密代码:

来自keras导入应用程序的

从keras.layers导入稠密、衰减、展平、Conv2D、MaxPool2D
从keras.models导入模型,输入
#从keras.engine.topology导入输入
从keras.layers导入平均值
def resnet50():
base_model=applications.resnet50.resnet50(weights='imagenet',include_top=False,input_shape=(224224,224,3))
last=基本模型输出
x=展平()(最后一个)
x=密度(2000,活化='relu')(x)
preds=密集(200,激活='softmax')(x)
模型=模型(基本模型输入,preds)
回归模型
def densenet121():
base_model=applications.densenet.DenseNet121(weights='imagenet',include_top=False,input_shape=(224224,3))
last=基本模型输出
x=展平()(最后一个)
x=密度(2000,活化='relu')(x)
preds=密集(200,激活='softmax')(x)
模型=模型(基本模型输入,preds)
回归模型
resnet50_model=resnet50()
densenet121_模型=densenet121()
集成_模型=[resnet50_模型,densenet121_模型]
def集成(模型、模型输入):
输出=[model.outputs[0]用于模型中的模型]
y=平均值()(输出)
模型=模型(模型输入,y,name='employee')
回归模型
模型输入=输入(形状=(224,3))
集成模型=集成(集成模型、模型输入)

我认为原因是当我结合reset50和densenet121时,它们有自己的输入层,即使我使输入形状相同。不同的输入层会导致冲突。这只是我的猜测,我不知道如何修复它。你可以在创建基本模型时设置
input\u tensor=model\u input

def resnet50(型号输入):
base_model=applications.resnet50.resnet50(weights='imagenet',include_top=False,input_tensor=model_input)
# ...
def densenet121(车型输入):
base_model=applications.densenet.DenseNet121(weights='imagenet',include_top=False,input_tensor=model_input)
# ...
模型输入=输入(形状=(2242243))
resnet50\u model=resnet50(model\u输入)
densenet121\u模型=densenet121(模型输入)
然后,基本模型将使用提供的
model\u输入
张量,而不是创建自己的单独输入张量