2017-02-11 8 views
2
void SilenceLayer<Dtype>::Backward_cpu(const vector<Blob<Dtype>*>& top, 
     const vector<bool>& propagate_down, const vector<Blob<Dtype>*>& bottom) { 
    for (int i = 0; i < bottom.size(); ++i) { 
    if (propagate_down[i]) { 
     caffe_set(bottom[i]->count(), Dtype(0), 
       bottom[i]->mutable_cpu_diff()); 
    } 
    } 
} 

Он просто устанавливает разницу в ноль. Каково использование этого слоя?Объясните слой молчания в кафе

ответ

3

Использование этого слоя заключается в том, чтобы исключить, что вывод неиспользуемых блобов сообщается в журнале. Являясь уровнем диспетчера вывода, он, очевидно, имеет нулевой градиент.

Например, предположим, что мы используем AlexNet, и мы меняем дно слоя «fc7» на «pool5» вместо «fc6». Если мы не удалим декларацию blob 'fc6', этот слой больше не будет использоваться, но его вывод будет напечатан в stderr: он рассматривается как результат всей архитектуры. Если мы хотим сохранить «fc6» по некоторым причинам, но без указания его значений, мы можем использовать «SilenceLayer».

http://caffe.berkeleyvision.org/tutorial/layers/silence.html

Смотрите также caffe.help.

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

  • Нет связанных вопросов^_^