В контексте обучения подкрепления у меня есть этап предварительной обработки данных, где у меня есть повторные отдельные файлы, предварительно обрабатывают в массивы JAX, а затем обрабатывают. Обучение повторяющихся сети, а также партии для градиентного происхождения. < /p>
Я думаю, у меня почти все компоненты. Я внедрил ReplayDatasource , который подклассирует Grain.randomaccessDataSource , который открывает и предварительно обрабатывает файл соответствия в память. Я внедрил пробоотборник, который возвращает смежные индексы для создания последовательностей. С одним источником данных я могу иметь все, что мне нужно, с (схематически) < /p>
Код: Выделить всё
source = ReplayDataSource( ... )
transformations = [grain.Batch(batch_size)]
sampler = MySampler( ... )
data_loader = grain.DataLoader(
data_source = source,
sampler = sampler,
operations = transformations,
shard_options=grain.NoSharding(),
)
< /code>
Это добавит 2 внешних измерения в мой набор данных, один для последовательностей, а другой - для партий. Отлично! < /P>
Отсутствует один элемент. Если я скажу 1000 файлов воспроизведения и не могу загрузить все в память, как мне сказать DataLoader создать нагрузку ReplayDataSources в память и избавиться от них по мере необходимости, по мере необходимости, по поводу элементов DataLoader?
Я попробовал Source = [Source1, Source2] < /code> в ARG DataLoader, но это не сработало. Я пытаюсь сделать из источников данных MapDataset Единственная функция зерна, о которой мне действительно интересно, - это последовательности и партии. Как создать набор данных Compose Out из файлов воспроизведения и открыть только по мере необходимости?
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-together
Мобильная версия