Разница в производительности ввода-вывода для последовательного и случайного доступа с итераторами данных MxNet?

Я хотел бы предоставить в сеть множество обучающих изображений, выбранных из набора данных в соответствии с определенными правилами выборки. Теперь у меня есть два варианта:

  1. Используйте логику выборки для создания списка изображений в автономном режиме, затем преобразуйте файл .lst в файл .rec и используйте последовательный DataIter для доступа к нему.

  2. Напишите свой собственный дочерний класс DataIter, который может сэмплировать изображения онлайн. В результате класс должен поддерживать произвольный доступ, возможно, наследуя от MXIndexedRecordIO. Мне нужно будет создать файл .rec для исходного набора данных.

Моя интуиция подсказывает мне, что последовательный доступ будет быстрее, чем произвольный доступ к файлу .rec. Но я не знаю, достаточно ли велика разница, чтобы оправдать дополнительное время, которое я трачу на написание и тестирование своего собственного класса итератора. Может ли кто-нибудь дать мне подсказку по этому поводу?


person J.Doe    schedule 15.07.2017    source источник
comment
Вероятно, вы захотите перетасовать ввод, чтобы избежать повторения одних и тех же данных, если вы используете итератор с произвольным доступом. Если вы это сделаете, у вас будет последовательный доступ, который дает вам возможности для оптимизации.   -  person Guy    schedule 16.07.2017


Ответы (2)


В вашем случае вам лучше предварительно упаковать изображения с помощью MXRecordIO. Это даст вам повышение производительности, а также обеспечит согласованность в том, как вы обрабатываете набор данных.

Он будет хранить файлы в файле .rec в виде списка, где порядок имеет значение.

Затем вы можете использовать mxnet.image.ImageIter для перебора .rec по порядку.

http://mxnet.io/api/python/io.html#mxnet.image.ImageIter

person Stanley Kirdey    schedule 22.07.2017

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

person madan jampani    schedule 18.07.2017