使用theano后端将Alexnet权重加载到keras模型中
问题描述:
我正在使用Alexnet等预先训练过的模型,在这种情况下也是以相同的错误结束。使用theano后端将Alexnet权重加载到keras模型中
我从这里下载的alexnet_weights - >https://github.com/heuritech/convnets-keras
然后,我尝试这样
从keras.models导入load_model
base_model = load_model( 'alexnet_weights.h5')
我结束了
ValueError:在配置文件中找不到模型。
请帮我摆脱它。
答
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”。这是抛出一个错误 – Rajesh
我可以有进一步的建议 – Rajesh
你必须建立Alexnet模型。例如,如果VGG-16有16层,而AlexNet有17层以上,那么这些额外的层会在哪里?这就像试图将一升水倒入一个0.5升的杯子中。它不会正常工作! – circuitdesigner5172