from __future__ import print_function import keras from keras.models import Model from keras.datasets import cifar10 import numpy as np import os from PIL import Image from keras.preprocessing.image import img_to_array import matplotlib.pyplot as plt #image mean (x_train, y_train), (x_test, y_test) = cifar10.load_data() # Normalize data. x_train = x_train.astype('float32') / 255 x_train_mean = np.mean(x_train, axis=0) # 自己加载raw image进行识别 lst = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'] def onehot_to_label(res): label = '' for i in range(len(res[0])): if res[0][i] == 1: label = lst[i] return label def softmax_to_label(res): label = '' index = res[0].argmax() label = lst[index] return label # load model model = keras.models.load_model('./saved_models/cifar10_ResNet83v2_model.060.h5') print(model) # read image and preprocess def image_to_array(path): image = Image.open(path) image = image.resize((32, 32)) # 会将图像整体缩放到指定大小,不是裁剪 image = img_to_array(image) # 变成数组 image = image.astype('float32') / 255 image -= x_train_mean image = image.reshape([1, 32, 32, 3]) # reshape到4维张量 return image image_path = './cifar10' for filename in os.listdir(image_path): filename = os.path.join(image_path, filename) # print(filename) # img = input('Input image filename:') try: image = image_to_array(filename) except: print('Open Error! Try again!') continue else: res = model.predict(image) label = softmax_to_label(res) print(f'{filename} is: {label}') # plt.imshow(image) # plt.show()
keras image predict
最新推荐文章于 2023-11-09 20:38:54 发布