Для глубокого обучения: сохранять каждый образец отдельно или сохранять блоки? данные не помещаются в памятьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Для глубокого обучения: сохранять каждый образец отдельно или сохранять блоки? данные не помещаются в память

Сообщение Anonymous »

Я обучаю классификатора. Мои данные поступают из нескольких наборов данных, каждый набор данных содержит несколько субъектов, каждый субъект провел несколько испытаний. В настоящее время моя структура данных на диске выглядит следующим образом:
-dataset1_subject1.pt
-dataset1_subject2.pt
-dataset1_subjectX.pt
.
.
.
-datasetN_subjectX.pt
Каждый субъект выполнил различное количество испытаний. Итак

Код: Выделить всё

torch.load(dataset1_subject1.pt)
возвращает что-то вроде n_trials, n_channel, n_time
Короче говоря, мой набор данных слишком велик для памяти, и я ищу решение.
Каждая партия должна содержать образцы или исследования от нескольких субъектов.
Я хочу отметить несколько подходов. Некоторые говорят, что лучше загрузить некоторые данные, перетасовать их и поместить в большие блоки, загрузить один блок в память, выполнять выборку из него до тех пор, пока от него ничего не останется, а затем загрузить следующий блок. На мой взгляд, это хорошо, поскольку загрузка 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»