2017-02-20 42 views
1

Если я определяю несколько уровней потерь в сети, будет ли многократное распространение назад с этих концов до начала сети? Я имею в виду, они даже так работают?Как я могу получить несколько потерь в сети в Caffe?

Предположим, у меня есть что-то вроде этого:

Layer1{ 
} 
Layer2{ 
} 
... 
Layer_n{ 
} 
Layer_cls1{ 
bottom:layer_n 
top:cls1 
} 
Layer_cls_loss1{ 
type:some_loss 
bottom:cls1 
top:loss1 
} 
Layer_n1{ 
bottom:layer_n 
.. 
} 
Layer_n2{ 
} 
... 
layer_n3{ 
} 
Layer_cls2{ 
bottom:layer_n3 
top:cls2 
} 
Layer_cls_loss2{ 
type:some_loss 
bottom:cls2 
top:loss2 
} 
layer_n4{ 
bottom:layer_n3 
.. 
} 
... 
layer_cls3End{ 
top:cls_end 
bottom:... 
} 
loss{ 
bottom:cls_end 
top:loss: 
type: someloss 
} 

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

И в случае, если они работают, как я могу добавить все потери вместе и сделать свою окончательную потерю суммированием всех предыдущих потерь?

ответ

2

Caffe делает это за вас.
Кроме того, для каждого уровня потерь у вас есть параметр loss_weight, который позволяет вам определить, насколько влиятелен этот удельный убыток по отношению ко всем другим потерям в сети.
В целом, потери, минимизированные с помощью кофе, составляют взвешенный сумма всех уровней потерь в модели.

+0

Еще раз спасибо Shai :) Полезно как всегда :) , если мы отложим эту простую форму, и мне нужно аккумулировать эти потери с нетривиальной формулой, как я могу это сделать? Должен ли я кодировать это или может быть достигнуто с использованием обычного/прототипного пути? – Breeze

+0

@ Хоссейн, что вы подразумеваете под «нетривиальной формулой»? – Shai

+0

Думаю, я узнал свой ответ! еще один, о потерях. предположим, что наша первая потеря вычисляется на уровне 5, вторая - на уровне 10, а последняя - на уровне 15. Это то, что происходит? , когда поток достигает слоя 5, начинается задний опоры, а весы обновляются со слоя 5 до первого слоя, между тем, передняя планка продолжается до следующих слоев, до тех пор, пока не достигает слоя 10, то же самое происходит здесь, запускается обратный проток, и это происходит до тех пор, пока мы не достигнем последней потери и окончательной обратной поддержки с самого конца сети – Breeze