Да, это возможно, но вы должны реализовать их самостоятельно. У Pytorch есть примитивы для этих методов, потому что он реализует свой собственный тип тензоров , а что нет; однако библиотека предоставляет только уровень абстракции для методов глубокого обучения. Например, очень наивная KNN
реализация (матрицы, полученной из векторной точки расстояния расстояния) будет
def KNN(X, k):
X = X.float()
mat_square = torch.mm(mat, mat.t())
diag = torch.diagonal(mat_square)
diag = diag.expand_as(mat_square)
dist_mat = diag + diag.t() - 2*mat_square
dist_col = dist_mat[-1, :-1]
val, index = dist_col.topk(k, largest=False, sorted=True)
return val, index
Вы должны использовать scikit-learn
, если хотите просто, готовые решения.