Я реализовал алгоритм k-ближайших соседей в python для классификации некоторых случайно выбранных изображений из mnist. база данных. Однако я обнаружил, что моя функция расстояния работает довольно медленно: анализ 10 тестовых изображений по сравнению с тренировочным набором из 10 тыс. изображений занимает около 2 минут. Изображения имеют разрешение 28x28 пикселей. Поскольку я новичок в python, у меня возникло ощущение, что это может быть быстрее. Предполагается, что функция вычисляет евклидово расстояние между двумя изображениями в градациях серого одинакового размера.
def calculateDistance(image1, image2):
distance = 0
for i in range(len(image1)):
for j in range(len(image1)):
distance += math.pow((image1[i][j]-image2[i][j]),2)
distance = numpy.sqrt(distance)
return distance