1 Star 0 Fork 246

石峻名/OPTIMAL_KNN_MNIST_QUESTION_1

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
optimal_knn_webapp.py 1.44 KB
一键复制 编辑 原始数据 按行查看 历史
ling-yuan-cccc 提交于 2024-09-24 11:04 . added a file
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()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/junming-shi/optimal_knn_mnist_question_1.git
git@gitee.com:junming-shi/optimal_knn_mnist_question_1.git
junming-shi
optimal_knn_mnist_question_1
OPTIMAL_KNN_MNIST_QUESTION_1
main

搜索帮助