Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras从VGG19到ResNet的转换_Python_Machine Learning_Keras_Resnet_Vgg Net - Fatal编程技术网

Python Keras从VGG19到ResNet的转换

Python Keras从VGG19到ResNet的转换,python,machine-learning,keras,resnet,vgg-net,Python,Machine Learning,Keras,Resnet,Vgg Net,我有以下代码,它在预先训练过的VGG模型上工作,但在ResNet和Inception模型上失败 vgg_model = keras.applications.vgg16.VGG16(weights='imagenet') type(vgg_model) vgg_model.summary() model = Sequential() for layer in vgg_model.layers: model.add(layer) 现在,将模型更改为ResNet,如下所示: resnet_

我有以下代码,它在预先训练过的VGG模型上工作,但在ResNet和Inception模型上失败

vgg_model = keras.applications.vgg16.VGG16(weights='imagenet')
type(vgg_model)
vgg_model.summary()
model = Sequential()
for layer in vgg_model.layers:
    model.add(layer)
现在,将模型更改为ResNet,如下所示:

resnet_model=keras.applications.resnet50.ResNet50(weights='imagenet')
type(resnet_model)
resnet_model.summary()
model = Sequential()
for layer in resnet_model.layers:
    model.add(layer)
给出以下错误:

ValueError: Input 0 is incompatible with layer res2a_branch1: expected axis -1 of input shape to have value 64 but got shape (None, 56, 56, 256)

问题在于,与VGG不同,Resnet没有顺序体系结构(例如,某些层连接到多个层,存在跳过连接等)。因此,您不能一个接一个地迭代模型中的层,并将每个层连接到上一层(即顺序连接)。您可以使用绘制模型的体系结构来更好地理解这一点。

问题是因为与VGG不同,Resnet没有顺序体系结构(例如,某些层连接到多个层,存在跳过连接等)。因此,您不能一个接一个地迭代模型中的层,并将每个层连接到上一层(即顺序连接)。您可以使用绘制模型的体系结构来更好地理解这一点。

@KaranArya正如我所提到的,没有办法将非顺序模型转换为顺序模型。我不知道你为什么有兴趣这么做。但是,如果你解释一下你的最终目标是什么,也许我们可以更好地帮助你。我的最终目标是使用ResNet运行一个多类分类。@KaranArya所以你不需要将ResNet转换为顺序模型就可以做到这一点。只需按原样使用(可能还需要在顶部添加自定义层)。参见(特别是最后一节:“微调预先训练网络的顶层”)@KaranArya正如我所提到的,没有办法将非顺序模型转换为顺序模型。我不知道你为什么有兴趣这么做。但是,如果你解释一下你的最终目标是什么,也许我们可以更好地帮助你。我的最终目标是使用ResNet运行一个多类分类。@KaranArya所以你不需要将ResNet转换为顺序模型就可以做到这一点。只需按原样使用(可能还需要在顶部添加自定义层)。请参阅(特别是最后一节:“微调预训练网络的顶层”)。为什么要将预训练模型转换为连续模型?如果答案解决了您的问题,请单击复选标记接受它(✔) 在答案旁边,将其标记为“已回答”-查看为什么要将预训练模型转换为连续模型?如果答案解决了您的问题,请单击复选标记接受它(✔) 在答案旁边将其标记为“已回答”-请参阅