Я хочу использовать в своей модели слой потерь типа InfogainLoss
. Но у меня возникают трудности с его правильным определением.
Есть ли какой-нибудь учебник / пример по использованию слоя
INFOGAIN_LOSS
?Должны ли входные данные для этого уровня, вероятности классов, быть выходными данными
SOFTMAX
слоя, или этого достаточно, чтобы ввести «верх» полностью связанного слоя?
INFOGAIN_LOSS
требует трех входных данных: вероятностей классов, меток и матрицы H
. Матрица H
может быть предоставлена либо как параметры слоя infogain_loss_param { source: "fiename" }
.
Предположим, у меня есть скрипт python, который вычисляет H
как numpy.array
формы (L,L)
с dtype='f4'
(где L
- количество меток в моей модели).
Как я могу преобразовать свой
numpy.array
вbinproto
файл, который может быть предоставлен какinfogain_loss_param { source }
модели?Предположим, я хочу, чтобы
H
был предоставлен в качестве третьего входа (внизу) для слоя потерь (а не в качестве параметра модели). Как я могу это сделать?
Могу ли я определить новый уровень данных, «верхний» которого будетH
? Если да, то не будут ли данные этого уровня увеличиваться на каждой итерации обучения, как приращение данных обучения? Как я могу определить несколько несвязанных уровней входных «данных» и как caffe знает, что читать из слоя «данные» обучения / тестирования пакет за пакетом, в то время как изH
слоя «данных» он знает, что читать только один раз за все обучение процесс?