Назначение пакетного канала в тензорной модели на прямом проходе 1 входа - PullRequest
0 голосов
/ 26 июня 2018

До сих пор я обучил пару разных моделей в TensorFlow (с Keras) и вижу, что правильное определение размера batch_size, по-видимому, важно не только для скорости обучения, но и для точности получаемой модели.

Что меня смущает, так это случай, когда модель имеет фактический пакетный канал в качестве первого измерения на входе (и на выходе также). Если мой размер пакета равен 32, но я всегда ввожу 1 данные во время выполнения, то где применяется канал пакета? Как я мог бы использовать подавляющее большинство из них, если по своей сути я использую только 1 / batch_size его количество в прямом проходе?

Если вам интересна модель, которую я исследую, вот эта:

https://github.com/pierluigiferrari/ssd_keras/blob/master/models/keras_ssd300.py см:

Форма вывода predictions: (партия, n_boxes_total, n_classes + 4 + 8)

predictions = Concatenate(axis=2, name='predictions')([mbox_conf_softmax, mbox_loc, mbox_priorbox])

Тензоры прошли через множество других слоев, которые имели константы и такие, также предварительно обученные с помощью [batch_size]. Мне просто кажется, что входные данные в различных пакетных индексах должны были бы давать разные результаты. Может быть, мне просто нужно что-то невероятно очевидное, указанное мне.

1 Ответ

0 голосов
/ 27 июня 2018

Может показаться, что после обучения вы должны перекомпилировать модель с размером партии 1, а затем перенести весовые коэффициенты из обучающей модели в новую модель для оценки. Альтернатива состоит в том, чтобы выполнить подсчет предсказаний «batch_size» за один раз (что, конечно, не всегда выполнимо для каждого приложения). Если есть альтернативы (или если я прочитал неправильно), пожалуйста, не стесняйтесь добавлять ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...