1. 程式人生 > >利用keras載入訓練好的.H5檔案,並預測圖片

利用keras載入訓練好的.H5檔案,並預測圖片

import matplotlib
matplotlib.use('Agg')
import os
from keras.models import load_model
import numpy as np
from PIL import Image
import cv2
#載入模型h5檔案
model = load_model("C:\\python\\python3_projects\\cat_dog\\cats_dogs_fifty_thousand.h5")
model.summary()
#規範化圖片大小和畫素值
def get_inputs(src=[]):
    pre_x = []
    for s in src:
        input = cv2.imread(s)
        input = cv2.resize(input, (150, 150))
        input = cv2.cvtColor(input, cv2.COLOR_BGR2RGB)
        pre_x.append(input)  # input一張圖片
    pre_x = np.array(pre_x) / 255.0
    return pre_x
#要預測的圖片儲存在這裡
predict_dir = 'C:\python\python3_projects\cat_dog\pics'
#這個路徑下有兩個檔案,分別是cat和dog
test = os.listdir(predict_dir)
#列印後:['cat', 'dog']
print(test)
#新建一個列表儲存預測圖片的地址
images = []
#獲取每張圖片的地址,並儲存在列表images中
for testpath in test:
    for fn in os.listdir(os.path.join(predict_dir, testpath)):
        if fn.endswith('jpg'):
            fd = os.path.join(predict_dir, testpath, fn)
            print(fd)
            images.append(fd)
#呼叫函式,規範化圖片
pre_x = get_inputs(images)
#預測
pre_y = model.predict(pre_x)
print(pre_y)