name: 'kidney_seg_with_BN' force_backward: true layer { top: 'data' top: 'label' top: 'weights' name: 'loaddata' type: 'HDF5Data' hdf5_data_param { source: 'trainfileList.txt' batch_size: 1 } include: { phase: TRAIN }} layer { type: 'CreateDeformation' top: 'def' name: 'create_deformation' create_deformation_param { random_offset_range_from_ignore_label: 0 batch_size: 1 nz: 116 ny: 132 nx: 132 ncomponents: 3 random_elastic_grid_spacing { v: 32 v: 32 v: 32 } random_elastic_deform_magnitude { v: 4 v: 4 v: 4 } random_offset_from { v: -44 v: -44 v: -44 } random_offset_to { v: -8 v: 156 v: 160 } random_rotate_from { v: -30 v: -30 v: -30} random_rotate_to { v: 30 v: 30 v: 30} } include: { phase: TRAIN } } layer { bottom: 'data' bottom: 'def' top: 'defdata' name: 'def_data-defdata' type: 'ApplyDeformation' apply_deformation_param { interpolation: 'linear' extrapolation: 'mirror'} include: { phase: TRAIN }} layer { bottom: 'data' bottom: 'def' top: 'd0a' name: 'def_data-defdata' type: 'ApplyDeformation' apply_deformation_param { interpolation: 'linear' extrapolation: 'mirror'} include: { phase: TEST }} layer { bottom: 'defdata' top: 'd0a' name: 'val_aug-d0a' type: 'ValueAugmentation' value_augmentation_param { black_from:-0.05 black_to:0.05 slope_min:0.8 slope_max:1.2 white_from:0.95 white_to:1.05 } include: { phase: TRAIN }} ################################################# layer { bottom: 'd0a' top: 'd0b' name: 'conv_d0a-b' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 32 pad: 0 kernel_size: 3 weight_filler { type: 'msra' } bias_filler { type: 'constant' value:-0.1} } include { phase: TEST } } layer { bottom: 'd0a' top: 'd0b' name: 'conv_d0a-b' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 32 pad: 0 kernel_size: 3 engine: CAFFE weight_filler { type: 'msra' } bias_filler { type: 'constant' value:-0.1} } include { phase: TRAIN} } layer { bottom: 'd0b' top: 'normd0b' name: 'bn_d0b' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normd0b' top: 'scaled0b' name: 'sc_d0b' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaled0b' top: 'scaled0b' name: 'relu_d0b' type: 'ReLU' } layer { bottom: 'scaled0b' top: 'd0c' name: 'conv_d0b-c' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 64 pad: 0 kernel_size: 3 weight_filler { type: 'msra' } } } layer { bottom: 'd0c' top: 'normd0c' name: 'bn_d0c' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normd0c' top: 'scaled0c' name: 'sc_d0c' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaled0c' top: 'scaled0c' name: 'relu_d0c' type: 'ReLU' } layer { bottom: 'scaled0c' top: 'd1a' name: 'pool_d0c-1a' type: 'Pooling' pooling_param { pool: MAX kernel_size: 2 stride: 2 engine: CAFFE} } ################################################# ################################################# layer { bottom: 'd1a' top: 'd1b' name: 'conv_d1a-b' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 64 pad: 0 kernel_size: 3 weight_filler { type: 'msra' } } } layer { bottom: 'd1b' top: 'normd1b' name: 'bn_d1b' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normd1b' top: 'scaled1b' name: 'sc_d1b' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaled1b' top: 'scaled1b' name: 'relu_d1b' type: 'ReLU' } layer { bottom: 'scaled1b' top: 'd1c' name: 'conv_d1b-c' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 128 pad: 0 kernel_size: 3 weight_filler { type: 'msra' } } } layer { bottom: 'd1c' top: 'normd1c' name: 'bn_d1c' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normd1c' top: 'scaled1c' name: 'sc_d1c' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaled1c' top: 'scaled1c' name: 'relu_d1c' type: 'ReLU' } layer { bottom: 'scaled1c' top: 'd2a' name: 'pool_d1c-2a' type: 'Pooling' pooling_param { pool: MAX kernel_size: 2 stride: 2 engine: CAFFE} } ################################################# ################################################# layer { bottom: 'd2a' top: 'd2b' name: 'conv_d2a-b' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 128 pad: 0 kernel_size: 3 weight_filler { type: 'msra' } } } layer { bottom: 'd2b' top: 'normd2b' name: 'bn_d2b' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normd2b' top: 'scaled2b' name: 'sc_d2b' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaled2b' top: 'scaled2b' name: 'relu_d2b' type: 'ReLU' } layer { bottom: 'scaled2b' top: 'd2c' name: 'conv_d2b-c' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 256 pad: 0 kernel_size: 3 weight_filler { type: 'msra' } } } layer { bottom: 'd2c' top: 'normd2c' name: 'bn_d2c' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normd2c' top: 'scaled2c' name: 'sc_d2c' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaled2c' top: 'scaled2c' name: 'relu_d2c' type: 'ReLU' } layer { bottom: 'scaled2c' top: 'd3a' name: 'pool_d2c-3a' type: 'Pooling' pooling_param { pool: MAX kernel_size: 2 stride: 2 engine: CAFFE} } ################################################# ################################################# layer { bottom: 'd3a' top: 'd3b' name: 'conv_d3a-b' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 256 pad: 0 kernel_size: 3 weight_filler { type: 'msra' } } } layer { bottom: 'd3b' top: 'normd3b' name: 'bn_d3b' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normd3b' top: 'scaled3b' name: 'sc_d3b' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaled3b' top: 'scaled3b' name: 'relu_d3b' type: 'ReLU' } layer { bottom: 'scaled3b' top: 'd3c' name: 'conv_d3b-c' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 512 pad: 0 kernel_size: 3 weight_filler { type: 'msra' } } } layer { bottom: 'd3c' top: 'normd3c' name: 'bn_d3c' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normd3c' top: 'scaled3c' name: 'sc_d3c' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaled3c' top: 'scaled3c' name: 'relu_d3c' type: 'ReLU' } ################################################# ################################################# layer { bottom: 'scaled3c' top: 'u2a' name: 'upconv_d3c_u2a' type: 'Deconvolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 512 pad: 0 kernel_size: 2 stride: 2 weight_filler { type: 'msra' }} } layer { bottom: 'u2a' top: 'normu2a' name: 'bn_u2a' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu2a' top: 'scaleu2a' name: 'sc_u2a' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu2a' top: 'scaleu2a' name: 'relu_u2a' type: 'ReLU' } layer { bottom: 'scaleu2a' bottom: 'scaled2c' top: 'u2b' name: 'concat_d2c_u2a-b' type: 'Concat' } layer { bottom: 'u2b' top: 'u2c' name: 'conv_u2b-c' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 256 pad: 0 kernel_size: 3 weight_filler { type: 'msra' }} } layer { bottom: 'u2c' top: 'normu2c' name: 'bn_u2c' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu2c' top: 'scaleu2c' name: 'sc_u2c' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu2c' top: 'scaleu2c' name: 'relu_u2c' type: 'ReLU' } layer { bottom: 'scaleu2c' top: 'u2d' name: 'conv_u2c-d' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 256 pad: 0 kernel_size: 3 weight_filler { type: 'msra' }} } layer { bottom: 'u2d' top: 'normu2d' name: 'bn_u2d' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu2d' top: 'scaleu2d' name: 'sc_u2d' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu2d' top: 'scaleu2d' name: 'relu_u2d' type: 'ReLU' } ################################################# ################################################# layer { bottom: 'scaleu2d' top: 'u1a' name: 'upconv_u2d_u1a' type: 'Deconvolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 256 pad: 0 kernel_size: 2 stride: 2 weight_filler { type: 'msra' }} } layer { bottom: 'u1a' top: 'normu1a' name: 'bn_u1a' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu1a' top: 'scaleu1a' name: 'sc_u1a' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu1a' top: 'scaleu1a' name: 'relu_u1a' type: 'ReLU' } layer { bottom: 'scaleu1a' bottom: 'scaled1c' top: 'u1b' name: 'concat_d1c_u1a-b' type: 'Concat' } layer { bottom: 'u1b' top: 'u1c' name: 'conv_u1b-c' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 128 pad: 0 kernel_size: 3 weight_filler { type: 'msra' }} } layer { bottom: 'u1c' top: 'normu1c' name: 'bn_u1c' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu1c' top: 'scaleu1c' name: 'sc_u1c' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu1c' top: 'scaleu1c' name: 'relu_u1c' type: 'ReLU' } layer { bottom: 'scaleu1c' top: 'u1d' name: 'conv_u1c-d' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 128 pad: 0 kernel_size: 3 weight_filler { type: 'msra' }} } layer { bottom: 'u1d' top: 'normu1d' name: 'bn_u1d' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu1d' top: 'scaleu1d' name: 'sc_u1d' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu1d' top: 'scaleu1d' name: 'relu_u1d' type: 'ReLU' } ################################################# ################################################# layer { bottom: 'scaleu1d' top: 'u0a' name: 'upconv_u1d_u0a' type: 'Deconvolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 128 pad: 0 kernel_size: 2 stride: 2 weight_filler { type: 'msra' }} } layer { bottom: 'u0a' top: 'normu0a' name: 'bn_u0a' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu0a' top: 'scaleu0a' name: 'sc_u0a' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu0a' top: 'scaleu0a' name: 'relu_u0a' type: 'ReLU' } layer { bottom: 'scaleu0a' bottom: 'scaled0c' top: 'u0b' name: 'concat_d0c_u0a-b' type: 'Concat' } layer { bottom: 'u0b' top: 'u0c' name: 'conv_u0b-c' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 64 pad: 0 kernel_size: 3 weight_filler { type: 'msra' }} } layer { bottom: 'u0c' top: 'normu0c' name: 'bn_u0c' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu0c' top: 'scaleu0c' name: 'sc_u0c' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu0c' top: 'scaleu0c' name: 'relu_u0c' type: 'ReLU' } layer { bottom: 'scaleu0c' top: 'u0d' name: 'conv_u0c-d' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } convolution_param { bias_term: false num_output: 64 pad: 0 kernel_size: 3 weight_filler {type: 'msra' }} } layer { bottom: 'u0d' top: 'normu0d' name: 'bn_u0d' type: 'BatchNorm' batch_norm_param { use_global_stats: false moving_average_fraction: 0.999 eps: 1e-5 } param { lr_mult: 0 } param { lr_mult: 0 } param { lr_mult: 0}} layer { bottom: 'normu0d' top: 'scaleu0d' name: 'sc_u0d' type: 'Scale' scale_param { axis: 1 filler: { type: 'constant' value: 1 } bias_term: true bias_filler { type: 'constant' value: 0. } } } layer { bottom: 'scaleu0d' top: 'scaleu0d' name: 'relu_u0d' type: 'ReLU' } ################################################# layer { bottom: 'scaleu0d' top: 'score' name: 'conv_u0d-score' type: 'Convolution' param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 3 pad: 0 kernel_size: 1 weight_filler { type: 'msra' }} } layer { bottom: 'label' bottom: 'def' top: 'labelcrop' name: 'def_label-crop' type: 'ApplyDeformation' apply_deformation_param { interpolation: 'nearest' extrapolation: 'mirror' output_shape_from: 'scaleu0d'} include: { phase: TRAIN }} layer { bottom: 'weights' bottom: 'def' top: 'weightscrop' name: 'def_weights-crop' type: 'ApplyDeformation' apply_deformation_param { interpolation: 'nearest' extrapolation: 'mirror' output_shape_from: 'scaleu0d'} include: { phase: TRAIN }} layer { bottom: 'score' bottom: 'labelcrop' bottom: 'weightscrop' top: 'loss' name: 'loss' type: 'SoftmaxWithLoss' loss_param { ignore_label: 3 } include: { phase: TRAIN }}