说明
在SSD代码中,添加新的代码,出现问题。添加的代码为
1.后面添加了新的层
2.将SSD修改为多个输入。
然后,程序运行时出现了以下问题
1.出现了很多"Train net output #....."
2.Check failed: result[j]->width() == 8 (5 vs. 8)
我们可以使用caffe的silence layer(和Slice层区分开)去处理。
silence层解释
SilenceLayer(官方文档)的作用就是避免在log中打印并没有使用的blobs的信息。作为一个output的管理层,梯度是0。
- Layer type: Silence
- Doxygen Documentation
- Header: ./include/caffe/layers/silence_layer.hpp
- CPU implementation: ./src/caffe/layers/silence_layer.cpp
- CUDA GPU implementation: ./src/caffe/layers/silence_layer.cu
silence使用
使用方式比较简单,如下所示
layer {
name: "silence"
type: "Silence"
bottom: "label"
}
其中,bottom后为要屏蔽的层
silence的python接口
net.silence = L.Silence(net.label, ntop=0)