Поймите пример для простой 3-слойной MLP с использованием MXNet в Julia

У меня есть базовое понимание нейронных сетей. Я понимаю, что должна быть матрица y (ожидаемый результат), в которой хранятся 0 или 1, соответствующие разным меткам категорий. Например, для распознавания цифр, если идентифицируемое число равно 6, вектор y должен быть [0,0,0,0,0,1,0,0,0,0], Однако, когда я вижу пример MXNet в репозитории MXNet.jl на Github, я не смог определить какой-либо код, который готовит матрицу результатов такого типа. Я думаю, что магия заключается в get_mnist_providers() метод, который возвращает 2 провайдера:

train_provider, eval_provider = get_mnist_providers(batch_size)

Я понятия не имею, что это за провайдеры - train_provider, eval_provider. Пожалуйста, помогите мне понять этих поставщиков. Я пытаюсь написать алгоритм, который имеет различные классификации, поэтому понимание этого поставщика является жизненно важным.

1 ответ

Вы правы относительно предоставления вектора y, соответствующего меткам. В MXNet есть концепция итераторов. Итераторы используются для привязки данных к меткам. Вероятно, ваш метод get_mnist_providers делает итератор данных, к которому прикреплена соответствующая метка.

Для более детального понимания того, как итераторы данных вписываются в общую картину оптимизации модели, вы можете попробовать это руководство (ссылки на репозиторий mxnet-notebooks Github): linear-regression.ipynb

(Для запуска учебника вам понадобится блокнот jupyter. Просто установите pip install jupyter, а затем запустите команду "Блокнот jupyter" в папке, где находится файл учебника).

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