#python #object-detection #mxnet
#python #обнаружение объекта #mxnet
Вопрос:
Я изучаю фреймворк MXNet и пытаюсь запустить пример обнаружения объекта с SSD:https://gluon.mxnet.io/chapter08_computer-vision/object-detection.html
Я использую графический процессор NVidia GTX 1050, 4 ГБ для обучения. Я работаю в Jupyter notebook. Версии: Python 3.6, MXNet 1.3.1.
В руководстве было сказано, что обучение с нуля занимает около 30 минут с одним графическим процессором. Я остановился через 3 часа. Модель обработала 24459 пакетов (размер пакета равен 32), когда я прервал обучение. Весь набор данных имеет размер 87,7 МБ, что меньше, чем 24459*32*256*256 (размер изображения 256×256). Я не могу понять, почему это может занять слишком много времени. Возможно, существуют какие-либо особые функции image.ImageDetIter (например, тот, который никогда не останавливается сам по себе)?
Ответ №1:
Спасибо за включение информации о версии. Вы абсолютно правы — в MXNet 1.3.0 была ошибка, из-за которой ImageDetIter
в приведенном вами примере выполнялся бесконечный цикл. Это было исправлено в декабре 2018, и если вы обновитесь до MXNet 1.4.0, вы не увидите проблемы. Я подтвердил это, запустив приведенный выше код.
Еще одно важное замечание: «Глубокое обучение — прямой допинг» устарело в пользу (Погружение в глубокое обучение](d2l.ai ). Контент обновлен и используется для курса в MXNet.Вот соответствующая глава в книге.
Кроме того, видеоролики с курса размещены здесь, если вы хотите их посмотреть.
Что касается воспроизведения, я запустил и подтвердил, что это бесконечно повторялось в 1.3.x и исправлено в 1.4.0.
train_iter = image.ImageDetIter(
batch_size=1000,
data_shape=(3, data_shape, data_shape),
path_imgrec='./data/pikachu_train.rec',
path_imgidx='./data/pikachu_train.idx',
#shuffle=True,
#mean=True,
#rand_crop=1,
min_object_covered=0.95,
last_batch_handle='pad',
max_attempts=5)
train_iter.reset()
for i,data in enumerate(train_iter):
print((i 1)) # goes forever on 1.3.0 but not 1.4.0
Надеюсь, это поможет,
Вишал