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