GOOGLE ADS

воскресенье, 8 мая 2022 г.

Как я могу включить GPU в этих строках?

как я могу ускорить вычисления для этого уравнения с помощью графического процессора или cuda, поскольку файл содержит 30 000 точек

points = pd.read_csv('file.dat', sep='\t', usecols=[0, 1])
d = pd.DataFrame(np.zeros((max_id, max_id)))
dis = sch.distance.pdist(points, 'euclidean')
n = 0
for i in range(max_id):
print(i)
for j in range(i + 1, max_id):
d.at[i, j] = dis[n]
d.at[j, i] = d.at[i, j]
n += 1

РЕДАКТИРОВАТЬ

Я попытался

points = genfromtxt(path, delimiter='\t', usecols=[0, 1])
points =torch.tensor(points)
d = pd.DataFrame(np.zeros((max_id, max_id)))
dis = torch.cdist(points)

но получил

TypeError: cdist() missing 1 required positional argument: 'x2'

означает ли это, что мне нужно читать точки или два столбца точек отдельно?


Решение проблемы

NumPy изначально не поддерживает графические процессоры. Хотя вы можете использовать некоторые библиотеки, которые совместимы с numpyGPU и поддерживают его. Одним из таких вариантов было бы использование PyTorch. torch.cdistбудет одной из функций, на которую вы можете посмотреть (тогда вам не нужно организовывать ее таким образом, используя циклы). Также есть torch.nn.functional.pdist. Также обратите внимание, что во втором случае вам не нужно использовать цикл for. Как только вы получите результат, вы можете использовать reshapeего в соответствии с вашими потребностями.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...