gpt4 book ai didi

python - 如何从 VGG 层创建 Keras Model()

转载 作者:行者123 更新时间:2023-12-01 00:57:00 25 4
gpt4 key购买 nike

我使用 VGG16 基础创建了一个自定义 Keras 模型,并对其进行训练和保存:

from keras.applications import VGG16
from keras import models
from keras import layers

conv_base = VGG16(weights="imagenet", include_top=False)

model = models.Sequential()
model.add(conv_base)
model.add(layers.Flatten())
model.add(layers.Dense(256, activation="relu"))
model.add(layers.Dense(1, activation="sigmoid"))
...
model.save("models/custom_vgg16.h5")

在另一个脚本中,我现在想要加载已保存的网络并从中创建一个新的 Keras Model 对象,使用自定义网络输入和 VGG16 层作为输出:

from keras.models import load_model
from keras import Model

model_vgg16 = load_model("models/custom_vgg16.h5")

layer_outputs = [layer.output for layer in model_vgg16.get_layer("vgg16").layers[1:]]
activation_model = Model(inputs=model_vgg16.get_layer("vgg16").get_input_at(1), outputs=layer_outputs)

但是最后一行会导致以下错误:

ValueError: Graph disconnected: cannot obtain value for tensor Tensor("input_1:0", shape=(?, 150, 150, 3), dtype=float32) at layer "input_1". The following previous layers were accessed without issue: []

有什么想法我可能会在这里错过吗?

最佳答案

您想要获取最后一行中节点索引 0 处的输入:

model_vgg16.get_layer('vgg16').get_input_at(0)

关于python - 如何从 VGG 层创建 Keras Model(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56166422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com