2017-01-06 2 views
0

В слое ввода caffe можно определить среднее изображение, которое содержит средние значения всех используемых изображений. Из примера образа изображения: «Модель требует от нас вычесть среднее значение изображения из каждого изображения, поэтому мы должны вычислить среднее значение».Что делает caffe со средним двоичным файлом?

Мой вопрос: Какова реализация этого вычитания? Является ли это просто:

used_image = original_image - mean_image 

или

used_image = mean_image - original_iamge 

или

used_image = |original_image - mean_image|^2 

, если это один из первых двух, то как отрицательные пиксели handeld? Поскольку изображения обычно хранятся в uint8, это означает, что это просто начинается с самого начала. например

200 - 255 = 56

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

ответ

1

Это первый, тривиальный шаг нормализации. Использование второго вместо этого не имело бы большого значения: весы инвертировали бы.

Не существует «отрицательных пикселей», как таковых: это просто целочисленный вход для операций с матрицей. You могут интерпретировать это как визуальное изменение какого-то рода, но в арифметике все равно.

+0

Спасибо, я копал исходный код и только что нашел его (строка 115 в data_transformer.cpp). – Kev1n91

+0

Хорошее слежение - теперь у вас есть знание из первых рук, наряду с другим обучением, собранным на этом пути. – Prune

+0

Я только что обсуждал это: поскольку это сделано на уровне ввода, возможно, этот код уже занимает часть графического процессора, где он все преобразован в float, поэтому это означает, что темный пиксель становится отрицательным числом – Kev1n91

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