dogs-vs-cats / test.py
codemetic's picture
initial commit
f145bd7
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image
import numpy as np
import os
# 加载模型
model = load_model("cat_dog_model.h5")
# 设置要处理的目录
input_dir = os.getenv("TEST_DATASET")
# 支持的图像扩展名
image_extensions = (".jpg", ".jpeg", ".png", ".bmp")
def predict(img_path):
img = image.load_img(img_path, target_size=(150, 150))
x = image.img_to_array(img) / 255.0
x = np.expand_dims(x, axis=0)
pred = model.predict(x)[0][0]
if pred < 0.3:
label = "cat"
elif pred > 0.7:
label = "dog"
else:
label = "uncertain animal"
return [label, pred]
# 遍历目录下所有图片文件
for fname in os.listdir(input_dir):
if not fname.lower().endswith(image_extensions):
continue # 跳过非图片文件
img_path = os.path.join(input_dir, fname)
try:
result = predict(img_path)
print("The model predicts the image '%s' is a %s, with sigmoid %s" %
(fname, result[0], result[1]))
except Exception as e:
print(f"Error processing {fname}: {e}")