【问题标题】:Load Alexnet weights into keras model using theano backend使用 theano 后端将 Alexnet 权重加载到 keras 模型中
【发布时间】:2017-12-19 11:47:01
【问题描述】:

我使用的是预训练模型,例如 Alexnet,在这种情况下,也会出现同样的错误。

我从这里下载了 alexnet_weights-->https://github.com/heuritech/convnets-keras

然后我就这样尝试了

从 keras.models 导入负载模型

base_model=load_model('alexnet_weights.h5')

我最终得到了

ValueError: 在配置文件中找不到模型。

请帮我摆脱它。

【问题讨论】:

    标签: python-2.7 keras theano pre-trained-model


    【解决方案1】:

    AlexNet 不是 Keras 中受支持的默认模型。也许你可以先试试 VGG16:

    from keras.applications.vgg16 import VGG16
    from keras.preprocessing import image
    from keras.applications.vgg16 import preprocess_input
    import numpy as np
    model = VGG16(weights='imagenet', include_top=False)
    img_path = 'elephant.jpg'
    img = image.load_img(img_path, target_size=(224, 224))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    features = model.predict(x)
    

    然后您可以转而使用 AlexNet,但您需要先构建模型结构并将其存储为“base_model”。我相信你只有体重档案。然后你就可以加载你拥有的权重文件了。

    【讨论】:

    • 感谢您的建议。我已经使用 VGG-16。这是 keras 中的默认模型。但是,对于 Alexnet(在 keras 中不是默认值),我正在尝试加载 - “alexnet_weights.h5”。它正在引发错误
    • 我还有什么建议吗
    • 你必须建立 Alexnet 模型。例如,如果 VGG-16 有 16 层,而 AlexNet 有超过 17 层,那么那些多余的会去哪里?这就像试图将 1 升水倒入 0.25 升的杯子中。它不能正常工作!
    猜你喜欢
    • 1970-01-01
    • 2020-07-26
    • 2017-06-27
    • 2018-04-10
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多