инструменты, с помощью которых можно батчи для трейна выгружать в опперативку/в карту только в момент непосредственного использования батча, не держа всё время его в памяти. Как это правильно гуглить? И какие классы в пайторчи позволяют реализовать это?
Dataloader позволяет выполнять подобные манипуляции Доки: https://pytorch.org/docs/stable/data.html Туториал: https://pytorch.org/tutorials/beginner/basics/data_tutorial.html
спасибо, но в туториале, насколько я понял, ничего не сказано про побатчивое чтение данных. Я так понял, надо смотреть в сторону Iterable-style datasets, да?
Там же указывается размер батча при создании экземпляра даталоадера. Потом при каждой итерации он будет возвращать один батч. Если ничего не путаю
ну насколько я понял он будет возвращать один батч нейронки, но при этом держать все данные в оперативки. А я о том, что бы данные считывались в оперативку только когда их нужно отдавать нейронки
как напишешь Dataset так и будет. Обычно там происходит чтение только в момент подготовки очередного сэмпла (в функции getitem)
так а как надо написать? можно гайд какой то? или хотя бы ключевые слова, по которым можно найти примеры/гайды
https://pytorch.org/tutorials/beginner/basics/data_tutorial.html
в этом примере весь датасет изображений не будет хранится целиком в памяти?
Там несколько примеров, про какой вопрос? Вообще чтоб не было вопросов - просто читайте все туториала на pytorch.org, их должно быть достаточно
так там ровно один пример с mnist'ом
ну так, это и есть пример с mnist'ом. Я и спрашиваю, как здесь будет работать? Картинки будут загружаться в память, только в рамках батча, что бы отдать в нейронку, или весь датасет целиком будет в памяти всегда?
только в рамках батча
окей, тогда попробую
Завтра могу на tf решение глянуть, если напомнишь. Сегодня выключился уже.
Обсуждают сегодня