代码拉取完成,页面将自动刷新
同步操作将从 mynameisi/OPTIMAL_KNN_MNIST_QUESTION 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import gradio as gr # 用于构建 Web 应用
import pickle # 用于加载模型
import cv2
from pinecone import Pinecone, ServerlessSpec
import numpy as np # 用于数值计算
from collections import Counter # 用于计数
import logging # 用于记录日志
# 设置日志配置
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# 初始化 Pinecone
pinecone = Pinecone(api_key="5f01d48c-9244-4f19-b1a6-1008b8728b56")
index_name = "mnist-index" # 使用与训练相同的索引名称
index = pinecone.Index(index_name)
# 定义预测函数
def predict(image):
if image is None: # 如果图像为空,返回 None
return None
# 转换图像为灰度
image = cv2.cvtColor(image["composite"], cv2.COLOR_RGBA2GRAY)
# 缩放图像为 8x8 大小
image = cv2.resize(image, (8, 8), interpolation=cv2.INTER_AREA)
image = image.ravel().tolist() # 转换为列表格式,适合 Pinecone
# 使用 Pinecone 进行预测
results = index.query(vector=image, top_k=11, include_metadata=True) # 查询
if results['matches']:
labels = [match['metadata']['label'] for match in results['matches']]
final_prediction = Counter(labels).most_common(1)[0][0]
return str(final_prediction) # 返回预测结果
else:
return "没有找到匹配项" # 如果没有匹配项,返回提示
# 创建 Gradio 接口
interface = gr.Interface(fn=predict, inputs=gr.ImageEditor(), outputs="label")
# 启动 Web 应用
interface.launch()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。