#python #pytorch #tensor
Вопрос:
У меня есть многомерный тензор, подобный этому
tensor([[ 0.5599, 0.4593, 0.0580, ..., -0.2404, 0.1144, -0.5047],
[ 0.1545, 0.3332, 0.3836, ..., 0.2483, -0.0849, -0.2216],
[ 0.4513, 0.0115, 0.0801, ..., -0.8038, 0.2350, -0.3261],
...,
[-0.4387, 0.3028, -0.0510, ..., -0.4966, -0.1606, 0.2933],
[ 0.0312, 0.2351, -0.0397, ..., -0.5401, -0.0554, -0.1552],
[-0.3732, -0.0460, 0.0698, ..., -0.2963, -0.3514, -0.3815]],
device='cuda:0', requires_grad=True)
Size of entity embeddings: torch.Size([14951, 400])
Каков наилучший способ сохранить этот тензор на диске и проиндексировать только строку этого многомерного тензора (т. Е., скажем, последнюю строку [-0.3732, -0.0460, 0.0698, ..., -0.2963, -0.3514, -0.3815]
и перенести ее в память на python?
Ответ №1:
Ответ зависит от того, что вы пытаетесь максимизировать/минимизировать.
Вы можете определить «Лучший способ хранения» как самую быструю запись, самое быстрое чтение, самый маленький файл, …
Но, учитывая ваши ограничения, я думаю, что HDFS должна быть хорошим кандидатом.
Pandas позволяет сохранять файлы в формате HDFS с помощью функции df.to_hdf ().
Вы также можете посмотреть H5py для работы с файлами HDFS.