Caffe中加入focal loss

 这是我在github上面上传的修改的caffe框架里面加入focal loss,需要的可以自己下载下来直接编译就可以了。

 https://github.com/caicai2526/Caffe_densenet_focal_loss

另外我也提供了caffe版本的Densenet网络结构加入focal loss和没有加入focal loss

地址:https://github.com/caicai2526/DenseNet_focal_loss

 在github上面的另外两个项目中也有提供(我没有编译通过,但是有人编译通过,如果有编译通过的希望能提供我一份)

 https://github.com/sciencefans/Focal-Loss

 https://github.com/chuanqi305/FocalLoss

 这里是使用上面提供的代码编译的博客:https://blog.csdn.net/qq_34951080/article/details/78491009

 说focal loss在caffe里面主要改的地方是如下部分:

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。




猜你喜欢

转载自blog.csdn.net/caicai2526/article/details/79928949