У меня есть список LongTensors и еще один список ярлыков. Я новичок в PyTorch и RNN, поэтому я совершенно не понимаю, как реализовать мини-пакетное обучение для данных, которые у меня есть. В этих данных есть гораздо больше, но я хочу, чтобы они были простыми, поэтому я могу понять только, как реализовать часть обучения мини-пакетам. Я делаю мультиклассовую классификацию на основе окончательного скрытого состояния LSTM / GRU, обученного на входах переменной длины. Мне удалось заставить его работать с размером пакета 1 (в основном SGD), но я борюсь с реализацией мини-пакетов.
Должен ли я довести последовательности до максимального размера и создать новую тензорную матрицу большего размера, содержащую все элементы? Я имею в виду вот так:
inputs = pad(sequences)
train = DataLoader(inputs, batch_size=batch_size, shuffle=True)
for i, data in train:
#do stuff using LSTM and/or GRU models
Это общепринятый способ мини-пакетного обучения пользовательских данных? Мне не удалось найти никаких руководств по загрузке пользовательских данных с помощью DataLoader (но я предполагаю, что это способ создания пакетов с помощью pyTorch?)
Еще одно сомнение, которое у меня есть, касается обивки. Причина, по которой я использую LSTM / GRU, заключается в переменной длине ввода. Разве набивка не противоречит цели? Необходимы ли набивки для мини-группового обучения?