1. 程式人生 > >DispNet中Caffe自定義層解讀(三)—— GenerateAugmetationParamters

DispNet中Caffe自定義層解讀(三)—— GenerateAugmetationParamters

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層

類似,不再贅述。