我正在进行转学习,我正在使用VGG16模型。我通过特征提取来调整我的模型。然后我训练了我的最终模型,我已经榨取了它的重量。 这是我的代码
def prediction(array):
size = 224
array = image_array(filename , size)
print(array.shape)
array = np.array(array , dtype = np.float64)
array = np.reshape(array, (1,224,224,3))
print(array.shape)
final_array = preprocess_input(array)
vgg16 = VGG16(weights='imagenet', include_top=False)
features = vgg16.predict(final_array)
image = features.reshape(features.shape[0] , -1)
#return image
loaded_model = pickle.load(open('vgg16.sav', 'rb'))
#print(image.shape)
array = np.asarray(array)
y_predict = loaded_model.predict(array)
当我调用此函数时,我遇到了错误 y_predict = loaded_model.predict(array) 我正在
AttributeError:'Sequential'对象没有属性'_built'
答案 0 :(得分:1)
您不应使用picke.dump
来保存权重并加载为模型。而是使用提供的函数model.save(filename)
或model.save_weights(filename)
分别保存模型或权重。在你的情况下,你可以这样做:
vgg16.save('vgg16.h5')
# ...
loaded_model = keras.models.load_model('vgg16.h5')
您需要h5py
个套件才能使用这些功能。