Python 两个大数组之间的汉明距离(大数组乘法的优化)
我正试图用Python编写一个字母识别程序,根据手写字母与训练集中字母的相似性将其分类。我选择用包含来自测试数据集(一行=一张图片)的图片的二进制表示的矩阵和来自火车数据集的图片矩阵之间的汉明距离来表示图片之间的差异。 我优化了函数,使其不是三个循环,而是利用了更有效的矩阵乘法。但遗憾的是,它仍然效率太低,无法足够快地处理我可以使用的整个培训集(25000多张图片)。 我正在寻找如何提高绩效的建议。我知道稀疏矩阵是一种东西,但它实际上会更有效地尝试和乘以它们吗? 我也没有成功地找到一个答案,即在非常大的数组的切片和切片的等效副本上执行操作是否存在性能差异(切片是数组和所有的视图) 这是我的海明距离函数:Python 两个大数组之间的汉明距离(大数组乘法的优化),python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我正试图用Python编写一个字母识别程序,根据手写字母与训练集中字母的相似性将其分类。我选择用包含来自测试数据集(一行=一张图片)的图片的二进制表示的矩阵和来自火车数据集的图片矩阵之间的汉明距离来表示图片之间的差异。 我优化了函数,使其不是三个循环,而是利用了更有效的矩阵乘法。但遗憾的是,它仍然效率太低,无法足够快地处理我可以使用的整个培训集(25000多张图片)。 我正在寻找如何提高绩效的建议。我知道稀疏矩阵是一种东西,但它实际上会更有效地尝试和乘以它们吗? 我也没有成功地找到一个答案,即在
def hamming_distance(X, X_train):
X_train = np.transpose(X_train)
NOT_X = np.subtract(np.ones(shape=(X.shape[0], X.shape[1])), X)
NOT_X_train = np.subtract(np.ones(shape=(X_train.shape[0],
X_train.shape[1])), X_train)
return X @ NOT_X_train + NOT_X @ X_train
另外,我对Python还是很陌生。感谢所有花时间阅读此问题的人。这是与不同的汉明距离吗?这是与不同的汉明距离吗?