layer { name: "data" type: "Python" top: "data" top: "label" python_param { module: "AugStegoDataLayer" layer: "AugmentDataLayerSync" param_str: "{\'im_shape\': [512, 512], \'root\': \'/home/mchen/tmp/caffe/data/JStego/JUNI_0.4/\', \'split\': \'train\', \'batch_size\': 40}" } } layer { name: "conv0" type: "Convolution" bottom: "data" top: "conv0" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } convolution_param { num_output: 4 pad: 2 kernel_size: 5 stride: 1 weight_filler { type: "constant" value: 0.0 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "conv1" type: "Convolution" bottom: "conv0" top: "conv1" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } convolution_param { num_output: 8 pad: 2 kernel_size: 5 stride: 1 weight_filler { type: "gaussian" std: 0.00999999977648 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "abs1" type: "AbsVal" bottom: "conv1" top: "abs1" } layer { name: "bn1" type: "BatchNorm" bottom: "abs1" top: "bn1" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } batch_norm_param { moving_average_fraction: 0.980000019073 eps: 9.99999974738e-05 scale_filler { type: "constant" value: 1.0 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "tanh1" type: "TanH" bottom: "bn1" top: "bn1" } layer { name: "conv2" type: "Convolution" bottom: "bn1" top: "conv2" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } convolution_param { num_output: 16 pad: 2 kernel_size: 5 stride: 1 weight_filler { type: "gaussian" std: 0.00999999977648 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "bn2" type: "BatchNorm" bottom: "conv2" top: "bn2" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } batch_norm_param { moving_average_fraction: 0.980000019073 eps: 9.99999974738e-05 scale_filler { type: "constant" value: 1.0 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "tanh2" type: "TanH" bottom: "bn2" top: "bn2" } layer { name: "sbp" type: "SplitByPhase" bottom: "bn2" top: "sbp" } layer { name: "conv3" type: "Convolution" bottom: "sbp" top: "conv3" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "gaussian" std: 0.00999999977648 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "bn3" type: "BatchNorm" bottom: "conv3" top: "bn3" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } batch_norm_param { moving_average_fraction: 0.980000019073 eps: 9.99999974738e-05 scale_filler { type: "constant" value: 1.0 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "relu3" type: "ReLU" bottom: "bn3" top: "bn3" } layer { name: "pool3" type: "Pooling" bottom: "bn3" top: "pool3" pooling_param { pool: AVE kernel_size: 5 stride: 2 pad: 1 } } layer { name: "conv4" type: "Convolution" bottom: "pool3" top: "conv4" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "gaussian" std: 0.00999999977648 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "bn4" type: "BatchNorm" bottom: "conv4" top: "bn4" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } batch_norm_param { moving_average_fraction: 0.980000019073 eps: 9.99999974738e-05 scale_filler { type: "constant" value: 1.0 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "relu4" type: "ReLU" bottom: "bn4" top: "bn4" } layer { name: "pool4" type: "Pooling" bottom: "bn4" top: "pool4" pooling_param { pool: AVE kernel_size: 5 stride: 2 pad: 1 } } layer { name: "conv5" type: "Convolution" bottom: "pool4" top: "conv5" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } convolution_param { num_output: 512 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "gaussian" std: 0.00999999977648 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "bn5" type: "BatchNorm" bottom: "conv5" top: "bn5" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } batch_norm_param { moving_average_fraction: 0.980000019073 eps: 9.99999974738e-05 scale_filler { type: "constant" value: 1.0 } bias_filler { type: "constant" value: 0.0 } } } layer { name: "relu5" type: "ReLU" bottom: "bn5" top: "bn5" } layer { name: "pool5" type: "Pooling" bottom: "bn5" top: "pool5" pooling_param { pool: AVE global_pooling: true } } layer { name: "fc6" type: "InnerProduct" bottom: "pool5" top: "fc6" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } inner_product_param { num_output: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.00999999977648 } } } layer { name: "loss" type: "SoftmaxWithLoss" bottom: "fc6" bottom: "label" top: "loss" } layer { name: "acc" type: "Accuracy" bottom: "fc6" bottom: "label" top: "acc" }