python - 找到计算 1NN 的有效方法
问题描述
试图找到一个测试集向量与整个火车集之间的最小距离,我有一个非常直观的计算它的函数,但是当我想将它计算到整个测试集时,它需要我很多时间,做您对实现它有一些想法(也许使用 CUDA,它是否可以帮助 GPU 功能)?
#testX - test set - numpy.ndarray(flatten img's)
#trainX - train set -numpy.ndarray(flatten img's)
ans = []
def metric(test, train):
return np.linalg.norm(test-train,np.inf)
def serch_min_dist(test):
return min((metric(test, train), i) for i, train in enumerate(trainX))
for i in range(len(testX)) : # for each test instance
minimum_d = serch_min_dist(testX[i], label)[0]
ans.append(minimum_d)
解决方案
推荐阅读
- java - 如何滚动直到一个对象在弹出窗口中可见?
- python - matplotlib 3D 线图,整个图形的颜色编码
- sql - 有序查询的第一组值
- java - 在 Spring Boot 应用的 pom.xml 中添加本地 jar
- javascript - 在 Wordpress 站点上显示来自 MSAccess DB 的自定义数据的最佳方式是什么?
- c++ - 如何在 vsprintf 之前确定 va_args 的大小
- css - 如何将这五个列框居中,以便它们与上面的 boostrap 按钮选项卡内联?
- javascript - 邮递员测试检查部分对象值
- python - 对于重复的行,创建小数值以填充另一列
- node.js - 邮件不是由 nodemailer 发送的