代码拉取完成,页面将自动刷新
同步操作将从 mynameisi/faiss_dog_cat_question 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import numpy as np
import faiss
class FaissKNeighbors:
def __init__(self, k=1, res=None):
self.index = None # FAISS索引,用于存储训练数据
self.y = None # 训练数据的标签
self.k = k # 最近邻个数
self.res = res # FAISS GPU资源对象
def fit(self, X, y):
self.index = faiss.IndexFlatL2(X.shape[1]) # 初始化FAISS索引,使用L2距离
# 如果提供了GPU资源,则将索引转移到GPU上
if self.res is not None:
self.index = faiss.index_cpu_to_gpu(self.res, 0, self.index)
self.index.add(X.astype(np.float32)) # 将训练数据添加到索引
self.y = y
def predict(self, X):
# 搜索X中每个向量的k个最近邻
distances, indices = self.index.search(X.astype(np.float32), self.k)
votes = self.y[indices] # 获取最近邻的标签
# 通过投票机制确定最终的预测标签
predictions = np.array([np.argmax(np.bincount(vote)) for vote in votes])
return predictions
def score(self, X, y):
predictions = self.predict(X) # 获取预测结果
accuracy = np.mean(predictions == y) # 计算准确率
return accuracy
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。