使用theano后端将Alexnet权重加载到keras模型中

使用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”。你只有我相信的体重文件。然后你可以加载你的体重文件。

+0

谢谢你的建议。我已经用VGG-16做了。这是keras中的默认模型。但是,在Alexnet(不是keras中的默认值)的情况下,我试图加载 - “alexnet_weights.h5”。这是抛出一个错误 – Rajesh

+0

我可以有进一步的建议 – Rajesh

+0

你必须建立Alexnet模型。例如,如果VGG-16有16层,而AlexNet有17层以上,那么这些额外的层会在哪里?这就像试图将一升水倒入一个0.5升的杯子中。它不会正常工作! – circuitdesigner5172