1. 程式人生 > >【keras】載入VGG16模型的預訓練權重

【keras】載入VGG16模型的預訓練權重

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time: 2018/8/15
# @Author: xfLi
#載入模型的預訓練權重

import numpy as np

from keras.applications.vgg16 import VGG16
from keras.models import Model
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input


#載入VGG16預訓練
base_model = VGG16(weights='imagenet', include_top=True)
for i, layer in enumerate(base_model.layers):
    print(i, layer.name, layer.output_shape)

model = Model(inputs=base_model.inputs, outputs=base_model.get_layer('block4_pool').output)

img_path = 'cat,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)
print(features)