代码拉取完成,页面将自动刷新
同步操作将从 泠鸢cccc/OPTIMAL_KNN_MNIST_QUESTION 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import gradio as gr # 用于创建图形用户界面(GUI)
import pickle # 用于加载保存的模型
import cv2 # 用于图像处理
import matplotlib.pyplot as plt
# ######## 1. 加载模型 ########
# 打开并加载保存的 KNN 模型,使用 'rb' 模式读取文件
with open('best_knn_model.pkl', 'rb') as file:
knn = pickle.load(file)
# ######## 2. 定义预测函数 ########
# 处理输入的图像并进行预测
def predict(image):
if image is None: # 检查图像是否为空
return None # 如果为空,返回 None
# 转换图像为灰度,保持模型输入的一致性
image = cv2.cvtColor(image["composite"], cv2.COLOR_RGBA2GRAY)
plt.imsave('image1.png', image, cmap='gray') # 把获取的图像保存到本地,以便检查获取的图像是否正确
# 调整图像大小为 8x8 并展平成一维数组,符合模型输入要求
image = cv2.resize(image, (8, 8), interpolation=cv2.INTER_AREA)
plt.imsave('image2.png', image, cmap='gray') # 把调整大小后的图像保存到本地,以便检查调整大小后的图像是否正确
image = image.ravel()
# 使用加载的 KNN 模型进行预测,返回结果并转化为字符串
return str(knn.predict([image])[0])
# ######## 3. 构建 Gradio 界面 ########
# 创建一个界面,使用图像编辑器作为输入,文本标签作为输出
gr.Interface(fn=predict, inputs=gr.ImageEditor(), outputs="label").launch()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。