原代码见:
https://github.com/chuanqi305/FocalLoss
1,caffe.proto
源文件在src/caffe/proto/目录里
从492行这些optional里,作者添加了两行:
optional ReLU6Parameter relu6_param = 208;
optional FocalLossParameter focal_loss_param = 147;
从895行这里添加了一行:
optional bool half_pad = 19 [default = false];
从1425行这里添加一行:
optional bool reduce_boxes = 14 [default = false];
从1505行添加了一段:
message ReLU6Parameter{
enum Engine {
DEFAULT = 0;
CAFEE = 1;
CUDNN = 2;
}
optional Engine engine = 2[default = DEFAULT];
}
从1641行添加一段:
message FocalLossParameter{
enum Engine{
DEFAULT = 0;
CAFFE = 1;
CUDNN = 2;
}
optional Engine engine = 1[default = DEFAULT];
//The axis along which to perform the softmax -- may be negative to index
//from the end(e.g., -1 for the last axis).
//Any other axes will be evaluated as independent softmaxes.
optional int32 axis = 2[default = 1];
optional float alpha = 3[default = 0.25];
optional float gamma = 4[default = 2.0];
}
2.在src/caffe/layers/下放入focal_loss_layer.cpp和focal_loss_layer.cu文件
3.在include/caffe/layers/下放入focla_loss_layer.hpp
重新编译Caffe。