-dataset1_subject1.pt
-dataset1_subject2.pt
-dataset1_subjectX.pt
.
.
.
-datasetN_subjectX.pt
Каждый субъект выполнил различное количество испытаний. Итак
Код: Выделить всё
torch.load(dataset1_subject1.pt)
Короче говоря, мой набор данных слишком велик для памяти, и я ищу решение.
Каждая партия должна содержать образцы или исследования от нескольких субъектов.
Я хочу отметить несколько подходов. Некоторые говорят, что лучше загрузить некоторые данные, перетасовать их и поместить в большие блоки, загрузить один блок в память, выполнять выборку из него до тех пор, пока от него ничего не останется, а затем загрузить следующий блок. На мой взгляд, это хорошо, поскольку загрузка 10 блоков происходит быстрее, чем загрузка отдельных испытаний. Однако это усложняет перекрестную проверку, поскольку мне нужно отбирать новые блоки для каждого разделения перекрестных значений.
Другие говорят, что, возможно, лучше разделить данные на отдельные выборки. Итак, вместо:
Код: Выделить всё
ds1_sibject1.pt
Код: Выделить всё
ds1_subject1_sample001.pt
.
.
Файлы (77 тыс. файлов в моем случае).
Тогда я мог бы использовать такие вещи, как HDF5 или отображение памяти для отложенной загрузки (если честно, я не знаю разницы, но похоже, что они похожи).
Также мне нужно разделить это на отдельные испытания для использования HDF5? или я могу попробовать отдельные испытания от субъекта, не загружая весь субъект?
Тут такая путаница, и ChatGPT не смог помочь.
Также у меня есть красное сообщение об этом https://pytorch.org/blog/efficient-pyto ... many-gpus/
, что звучит очень многообещающе, поскольку я мог бы использовать В какой-то момент несколько графических процессоров.
В настоящее время я склонен разбивать его на отдельные файлы по 77 тысяч и использовать метод, при котором он заархивирован в виде .tar
Что бы вы порекомендовали? Кто-нибудь здесь сталкивался с подобными проблемами? Помощь очень ценится!
Подробнее здесь: https://stackoverflow.com/questions/788 ... doesnt-fit