message TransformationParameter {
optional float scale = 1 [default = 1];
optional bool mirror = 2 [default = false];
optional uint32 crop_size = 3 [default = 0];
optional string mean_file = 4;
repeated float mean_value = 5;
optional bool force_color = 6 [default = false];
optional bool force_gray = 7 [default = false];
}網絡
描述:
scale:對輸入圖片的像素值作縮放的係數。例如輸入圖像的某一像素(RGB)值爲(255,255,255),若是scale值爲1/255,則縮放後變爲(1,1,1)。
mirror:以圖像中線爲軸,進行左右反轉。
crop_size:對輸入圖片進行隨機切割。若是輸入圖片的大小比crop_size大,則從圖片中隨機剪裁crop_size大小的圖片做爲網絡輸入。
mean_file:保存要訓練的圖片集的均值的文件。若是是RGB就是訓練集圖片所有像素的R、G、B相加除訓練集所有圖片的像素數,結果爲(Rm,Gm,Bm)。圖片scale前先減該均值。
mean_vale:要訓練的圖片集均值。若是隻配置一次,則該值被全部通道使用(各通道都減該值);若是針對每一個通道要配置不一樣的均值,須要重複配置n次(n表示通道數)。mean_value和mean_file不能同時設定。
force_color:輸入圖片是否爲3通道的彩色圖片。
force_gray:輸入圖片是否爲1通道的灰度圖(force_gray和force_color不能同時設定爲true)。
注:若是輸入mean_value/mean_file,在進行scale前圖片先進行減mean操做,而後進行scale。ui
src/caffe/data_transformer.cpp
include/caffe/data_transformer.hpporm
class屬性描述:
TransformationParameter param_; //transform描述信息
shared_ptr<Caffe::RNG> rng_; //crop使用的隨數生成器
Phase phase_; //訓練or預測信息描述
Blob<Dtype> data_mean_; //存儲mean_file中讀取的數據
vector<Dtype> mean_values_; //存儲meal_value值圖片
class方法描述:
Transform(...) //根據param_描述的transform信息對圖像進行變換
InferBlobShap(...)//根據輸入的數據,推斷圖像轉換後產生的blob形狀
InitRand(...) //初始化隨機數生成器string