DispNet中Caffe自定义层解读(三)—— GenerateAugmetationParamters

版权声明:如需转载请评论告知并标明出处 https://blog.csdn.net/ShuqiaoS/article/details/83380553

DispNet中Caffe自定义层解读(三)—— GenerateAugmetationParamters

这一系列博文记录了博主在学习DispNet过程中遇到的自定义Caffe层的笔记。这一部分是GenerateAugmentationParameters层,其主要功能是:

。更新于2018.10.25。

调用方式

在调用时,三个输入依次分别为:DataAugmentation层的输出参数(第二个输出)、DataAugmentation层的输入、DataAugmentation层的输出结果(第一个输出);输出为可以直接送入DataAugmentation层作为参数(第二个输入)的blob。

layer {
  name: "aug_params1"
  type: "GenerateAugmentationParameters"
  bottom: "input_blob1"
  bottom: "input_blob2"
  bottom: "input_blob3"
  top: "output_blob"
  augmentation_param {
    augment_during_test: false
    gamma {
      rand_type: "gaussian_bernoulli"
      exp: true
      mean: 0
      spread: 0.01
      prob: 1.0
    }
    brightness {
      rand_type: "gaussian_bernoulli"
      exp: false
      mean: 0
      spread: 0.01
      prob: 1.0
    }
    contrast {
      rand_type: "gaussian_bernoulli"
      exp: true
      mean: 0
      spread: 0.01
      prob: 1.0
    }
    color {
      rand_type: "gaussian_bernoulli"
      exp: true
      mean: 0
      spread: 0.01
      prob: 1.0
    }
  }
  coeff_schedule_param {
    half_life: 50000
    initial_coeff: 0.5
    final_coeff: 1
  }
}

generate_augmentation_parameters_layer.hpp

与数据扩张层类似,这个层也不支持反向计算。类似的头文件定义可以参考DataAugmentation层的hpp部分。

generate_augmentation_parameters_layer.cpp

cpp文件中不负责参数计算,主要就是进行了Reshape的工作。

generate_augmentation_parameters_layer.cu

程序默认只在训练过程进行数据扩张的参数计算,如果有特殊要求,可以在测试过程也进行计算。

参数的计算方式和类型与DataAugmentation层类似,不再赘述。

猜你喜欢

转载自blog.csdn.net/ShuqiaoS/article/details/83380553