Pytorch: Почему партия является вторым измерением в LSTM по умолчанию?

В документации PyTorch LSTM написано:

batch_first — если True, то предоставляются входные и выходные тензоры. как (партия, последовательность, функция). По умолчанию: Ложь

Мне интересно, почему они выбрали пакетное измерение по умолчанию в качестве второго, а не первого. для меня проще представить мои данные как [batch, seq, feature], чем [seq, batch, feature]. Первое мне кажется более интуитивным, а второе нелогичным.

Я прошу здесь узнать, есть ли какая-либо причина этого, и можете ли вы помочь мне понять это.

Оптимизация производительности модели: Руководство по настройке гиперпараметров в Python с Keras
Оптимизация производительности модели: Руководство по настройке гиперпараметров в Python с Keras
Настройка гиперпараметров - это процесс выбора наилучшего набора гиперпараметров для модели машинного обучения с целью оптимизации ее...
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Udacity Nanodegree Capstone Project: Классификатор пород собак
Udacity Nanodegree Capstone Project: Классификатор пород собак
Вы можете ознакомиться со скриптами проекта и данными на github .
Определение пород собак с помощью конволюционных нейронных сетей (CNN)
Определение пород собак с помощью конволюционных нейронных сетей (CNN)
В рамках финального проекта Udacity Data Scietist Nanodegree я разработал алгоритм с использованием конволюционных нейронных сетей (CNN) для...
Почему Python - идеальный выбор для проекта AI и ML
Почему Python - идеальный выбор для проекта AI и ML
Блог, которым поделился Harikrishna Kundariya в нашем сообществе Developer Nation Community.
3
0
844
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Насколько я знаю, строго обоснованного ответа нет. В настоящее время он отличается от других фреймворков, где, как вы говорите, форма более интуитивно понятна, таких как Keras, но только из соображений совместимости со старыми версиями, изменение параметра по умолчанию, который изменяет размеры вектора, вероятно, сломает половину моделей, если их сопровождающие обновляются до более новых версий PyTorch.

Вероятно, изначально идея заключалась в том, чтобы сначала установить временное измерение, чтобы упростить итерационный процесс с течением времени, чтобы вы могли просто выполнить

for t, out_t in enumerate(my_tensor)

вместо того, чтобы делать меньше визуальных вещей, таких как доступ с помощью my_tensor[:, i] и повторение в range(time).

В ответе на другой вопрос написано:

Существует аргумент в пользу отказа от использования batch_first, который гласит: что базовый API, предоставляемый Nvidia CUDA, значительно быстрее, используя пакет в качестве вторичного.

Но я не знаю, верен ли этот аргумент или нет.

Другие вопросы по теме