代码拉取完成,页面将自动刷新
同步操作将从 mynameisi/OPTIMAL_KNN_MNIST_QUESTION 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# TODO: 导入必要的库和模块
from PIL import Image
import numpy as np
import gradio as gr
import joblib
from pinecone import Pinecone, ServerlessSpec
# Pinecone 配置
pinecone = Pinecone(api_key="8b95cadf-b4ed-4a8d-bc18-d895a2db287b",environment='us-east-1-gcp')
# 连接到 Pinecone 索引
index_name = "mnist-index"
index = pinecone.Index(index_name)
def predict_digit(img):
if isinstance(img, np.ndarray):
img = Image.fromarray(img) # 将 numpy 数组转换为 PIL 图像对象
img = img.convert('L') # 转为灰度图
img = img.resize((8, 8)) # 调整图像大小为 8x8
img_array = np.array(img) # 转换为 numpy 数组
img_array = img_array.astype(int).flatten() # 使用内置的 int 类型并展平数组
# 查询 Pinecone 索引
query_response = index.query(vector=img_array.tolist(), top_k=1, include_metadata=True)
prediction = query_response['matches'][0]['metadata']['label']
return int(prediction) # 将 numpy.int32 转换为内置的 int 类型y.int32 转换为内置的 int 类型
# 创建Gradio接口
iface = gr.Interface(
fn=predict_digit,
inputs=gr.Image(shape=(200, 200), image_mode='L', invert_colors=True, source="canvas"),
outputs="label",
title="手写数字识别",
description="请在下面的画板上写一个数字,然后点击提交查看模型预测结果。"
)
# 启动Gradio接口
iface.launch()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。