2016-12-18 2 views
0

С помощью файла AlexNet, посвященного BVLC, я тренировал CNN против созданного набора тренировок. Чтобы измерить ход обучения, я использовал грубый метод для приближения точности к данным обучения. Мой размер партии в тестовой сети равен 256. У меня есть ~ 4500 изображений. Я выполняю 17 вызовов solver.test_nets [0] .forward() и записываю значение данных solver.test_nets [0] .blobs ['precision']. (Точность этого переадресации). Я беру среднее значение через них. Моя мысль заключалась в том, что я взял 17 случайных выборок из 256 из моего набора проверки и получал точность этих случайных выборок. Я ожидал бы, что это приблизит приблизительную точность всей совокупности. Однако позже я вернулся и написал сценарий для прохождения каждого элемента в своем LMDB, чтобы я мог создать матрицу путаницы для всего тестового набора. Я обнаружил, что истинная точность моей модели была значительно ниже, чем предполагаемая точность. Например, моя ожидаемая точность ~ 75% снизилась до ~ 50% истинной точности. Это намного худший результат, чем я ожидал.Как Caffe определяет точность тестового набора?

My assumptions match the answer given here.

ли я сделал неверное предположение, где-то? Что может объяснить разницу? Я предположил, что функция forward() собрала случайную выборку, но я не уверен, что это так. blobs. ['precision']. Каждый день каждый возвращал другой результат (хотя обычно в пределах небольшого диапазона), поэтому я принял это.

ответ

0

Я предположил, что функция forward() собрала случайный образец, но я не уверен, что это так. blobs. ['precision']. Каждый день каждый возвращал другой результат (хотя обычно в пределах небольшого диапазона), поэтому я принял это.

forward() функция от Caffe не выполняет каких-либо случайной выборки, то это будет только принести следующую партию в соответствии с вашими DataLayer. Например, в вашем случае forward() будет передавать следующие 256 изображений в вашей сети. Выполнение этого 17 раз будет проходить последовательно 17x256=4352 изображений.

Я сделал неправильное предположение где-нибудь? Что может объяснить разницу?

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

Смежные вопросы