| @@ -0,0 +1,17 @@ | |||
| net: "train_val.prototxt" | |||
| base_lr: 0.001 | |||
| lr_policy: "step" | |||
| stepsize: 10000 | |||
| gamma: 0.100000 | |||
| max_iter: 15000 | |||
| iter_size: 1 | |||
| clip_gradients: 10.000000 | |||
| test_iter: 1 | |||
| test_interval: 300000 | |||
| snapshot: 50 | |||
| momentum: 0.900000 | |||
| weight_decay: 0.0005 | |||
| display: 100 | |||
| solver_mode: GPU | |||
| test_initialization: false | |||
| snapshot_prefix: "snapshots/snapshot" | |||
| @@ -11,7 +11,6 @@ import matplotlib.pyplot as plt | |||
| import caffe | |||
| import cv2 | |||
| import random | |||
| import scipy.ndimage as nd | |||
| @@ -285,7 +284,7 @@ def get_args(): | |||
| parser.add_argument("--debug-dir", default='debug', type=str, | |||
| help="Dump images for debugging") | |||
| parser.add_argument("--print-count", default=10, type=int, | |||
| help="Dump images for debugging") | |||
| help="How often to print progress") | |||
| args = parser.parse_args() | |||
| print args | |||
| @@ -0,0 +1,845 @@ | |||
| input: "data" | |||
| input_dim: 1 | |||
| # change to input_dim: 1 if not using color inputs | |||
| input_dim: 3 | |||
| input_dim: 256 | |||
| input_dim: 256 | |||
| input: "gt" | |||
| input_dim: 1 | |||
| input_dim: 1 | |||
| input_dim: 256 | |||
| input_dim: 256 | |||
| layer { | |||
| name: "Convolution1" | |||
| type: "Convolution" | |||
| bottom: "data" | |||
| top: "Convolution1" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_0_0" | |||
| type: "ReLU" | |||
| bottom: "Convolution1" | |||
| top: "Convolution1" | |||
| } | |||
| layer { | |||
| name: "Convolution2" | |||
| type: "Convolution" | |||
| bottom: "Convolution1" | |||
| top: "Convolution2" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_0_1" | |||
| type: "ReLU" | |||
| bottom: "Convolution2" | |||
| top: "Convolution2" | |||
| } | |||
| layer { | |||
| name: "Convolution3" | |||
| type: "Convolution" | |||
| bottom: "Convolution2" | |||
| top: "Convolution3" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_0_2" | |||
| type: "ReLU" | |||
| bottom: "Convolution3" | |||
| top: "Convolution3" | |||
| } | |||
| layer { | |||
| name: "Convolution4" | |||
| type: "Convolution" | |||
| bottom: "Convolution3" | |||
| top: "Convolution4" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_0_3" | |||
| type: "ReLU" | |||
| bottom: "Convolution4" | |||
| top: "Convolution4" | |||
| } | |||
| layer { | |||
| name: "Convolution5" | |||
| type: "Convolution" | |||
| bottom: "Convolution4" | |||
| top: "Convolution5" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_0_4" | |||
| type: "ReLU" | |||
| bottom: "Convolution5" | |||
| top: "Convolution5" | |||
| } | |||
| layer { | |||
| name: "Convolution6" | |||
| type: "Convolution" | |||
| bottom: "Convolution5" | |||
| top: "Convolution6" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_0_5" | |||
| type: "ReLU" | |||
| bottom: "Convolution6" | |||
| top: "Convolution6" | |||
| } | |||
| layer { | |||
| name: "Convolution7" | |||
| type: "Convolution" | |||
| bottom: "Convolution6" | |||
| top: "Convolution7" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_0_6" | |||
| type: "ReLU" | |||
| bottom: "Convolution7" | |||
| top: "Convolution7" | |||
| } | |||
| layer { | |||
| name: "Pooling1" | |||
| type: "Pooling" | |||
| bottom: "Convolution1" | |||
| top: "Pooling1" | |||
| pooling_param { | |||
| pool: AVE | |||
| kernel_size: 2 | |||
| stride: 2 | |||
| } | |||
| } | |||
| layer { | |||
| name: "Convolution8" | |||
| type: "Convolution" | |||
| bottom: "Pooling1" | |||
| top: "Convolution8" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_1_0" | |||
| type: "ReLU" | |||
| bottom: "Convolution8" | |||
| top: "Convolution8" | |||
| } | |||
| layer { | |||
| name: "Convolution9" | |||
| type: "Convolution" | |||
| bottom: "Convolution8" | |||
| top: "Convolution9" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_1_1" | |||
| type: "ReLU" | |||
| bottom: "Convolution9" | |||
| top: "Convolution9" | |||
| } | |||
| layer { | |||
| name: "Convolution10" | |||
| type: "Convolution" | |||
| bottom: "Convolution9" | |||
| top: "Convolution10" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_1_2" | |||
| type: "ReLU" | |||
| bottom: "Convolution10" | |||
| top: "Convolution10" | |||
| } | |||
| layer { | |||
| name: "Convolution11" | |||
| type: "Convolution" | |||
| bottom: "Convolution10" | |||
| top: "Convolution11" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_1_3" | |||
| type: "ReLU" | |||
| bottom: "Convolution11" | |||
| top: "Convolution11" | |||
| } | |||
| layer { | |||
| name: "Convolution12" | |||
| type: "Convolution" | |||
| bottom: "Convolution11" | |||
| top: "Convolution12" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_1_4" | |||
| type: "ReLU" | |||
| bottom: "Convolution12" | |||
| top: "Convolution12" | |||
| } | |||
| layer { | |||
| name: "Convolution13" | |||
| type: "Convolution" | |||
| bottom: "Convolution12" | |||
| top: "Convolution13" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_1_5" | |||
| type: "ReLU" | |||
| bottom: "Convolution13" | |||
| top: "Convolution13" | |||
| } | |||
| layer { | |||
| name: "Pooling2" | |||
| type: "Pooling" | |||
| bottom: "Convolution8" | |||
| top: "Pooling2" | |||
| pooling_param { | |||
| pool: AVE | |||
| kernel_size: 2 | |||
| stride: 2 | |||
| } | |||
| } | |||
| layer { | |||
| name: "Convolution14" | |||
| type: "Convolution" | |||
| bottom: "Pooling2" | |||
| top: "Convolution14" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_2_0" | |||
| type: "ReLU" | |||
| bottom: "Convolution14" | |||
| top: "Convolution14" | |||
| } | |||
| layer { | |||
| name: "Convolution15" | |||
| type: "Convolution" | |||
| bottom: "Convolution14" | |||
| top: "Convolution15" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_2_1" | |||
| type: "ReLU" | |||
| bottom: "Convolution15" | |||
| top: "Convolution15" | |||
| } | |||
| layer { | |||
| name: "Convolution16" | |||
| type: "Convolution" | |||
| bottom: "Convolution15" | |||
| top: "Convolution16" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_2_2" | |||
| type: "ReLU" | |||
| bottom: "Convolution16" | |||
| top: "Convolution16" | |||
| } | |||
| layer { | |||
| name: "Convolution17" | |||
| type: "Convolution" | |||
| bottom: "Convolution16" | |||
| top: "Convolution17" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_2_3" | |||
| type: "ReLU" | |||
| bottom: "Convolution17" | |||
| top: "Convolution17" | |||
| } | |||
| layer { | |||
| name: "Convolution18" | |||
| type: "Convolution" | |||
| bottom: "Convolution17" | |||
| top: "Convolution18" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_2_4" | |||
| type: "ReLU" | |||
| bottom: "Convolution18" | |||
| top: "Convolution18" | |||
| } | |||
| layer { | |||
| name: "Pooling3" | |||
| type: "Pooling" | |||
| bottom: "Convolution14" | |||
| top: "Pooling3" | |||
| pooling_param { | |||
| pool: AVE | |||
| kernel_size: 2 | |||
| stride: 2 | |||
| } | |||
| } | |||
| layer { | |||
| name: "Convolution19" | |||
| type: "Convolution" | |||
| bottom: "Pooling3" | |||
| top: "Convolution19" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_3_0" | |||
| type: "ReLU" | |||
| bottom: "Convolution19" | |||
| top: "Convolution19" | |||
| } | |||
| layer { | |||
| name: "Convolution20" | |||
| type: "Convolution" | |||
| bottom: "Convolution19" | |||
| top: "Convolution20" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_3_1" | |||
| type: "ReLU" | |||
| bottom: "Convolution20" | |||
| top: "Convolution20" | |||
| } | |||
| layer { | |||
| name: "Convolution21" | |||
| type: "Convolution" | |||
| bottom: "Convolution20" | |||
| top: "Convolution21" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_3_2" | |||
| type: "ReLU" | |||
| bottom: "Convolution21" | |||
| top: "Convolution21" | |||
| } | |||
| layer { | |||
| name: "Convolution22" | |||
| type: "Convolution" | |||
| bottom: "Convolution21" | |||
| top: "Convolution22" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "conv_3_3" | |||
| type: "ReLU" | |||
| bottom: "Convolution22" | |||
| top: "Convolution22" | |||
| } | |||
| layer { | |||
| name: "upsample_1" | |||
| type: "Deconvolution" | |||
| bottom: "Convolution13" | |||
| top: "upsample_1" | |||
| param { | |||
| lr_mult: 0 | |||
| decay_mult: 0 | |||
| } | |||
| convolution_param { | |||
| kernel_size: 4 | |||
| num_output: 32 | |||
| group: 32 | |||
| stride: 2 | |||
| pad: 1 | |||
| weight_filler: { type: 'bilinear' } | |||
| bias_term: false | |||
| } | |||
| } | |||
| layer { | |||
| name: "upsample_2" | |||
| type: "Deconvolution" | |||
| bottom: "Convolution18" | |||
| top: "upsample_2" | |||
| param { | |||
| lr_mult: 0 | |||
| decay_mult: 0 | |||
| } | |||
| convolution_param { | |||
| kernel_size: 8 | |||
| num_output: 32 | |||
| group: 32 | |||
| stride: 4 | |||
| pad: 2 | |||
| weight_filler: { type: 'bilinear' } | |||
| bias_term: false | |||
| } | |||
| } | |||
| layer { | |||
| name: "upsample_3" | |||
| type: "Deconvolution" | |||
| bottom: "Convolution22" | |||
| top: "upsample_3" | |||
| param { | |||
| lr_mult: 0 | |||
| decay_mult: 0 | |||
| } | |||
| convolution_param { | |||
| kernel_size: 16 | |||
| num_output: 32 | |||
| group: 32 | |||
| stride: 8 | |||
| pad: 4 | |||
| weight_filler: { type: 'bilinear' } | |||
| bias_term: false | |||
| } | |||
| } | |||
| layer { | |||
| name: "merged" | |||
| type: "Concat" | |||
| bottom: "Convolution7" | |||
| bottom: "upsample_1" | |||
| bottom: "upsample_2" | |||
| bottom: "upsample_3" | |||
| top: "merged" | |||
| } | |||
| layer { | |||
| name: "Convolution26" | |||
| type: "Convolution" | |||
| bottom: "merged" | |||
| top: "Convolution26" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 3 | |||
| kernel_size: 7 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "merged_conv" | |||
| type: "ReLU" | |||
| bottom: "Convolution26" | |||
| top: "Convolution26" | |||
| } | |||
| layer { | |||
| name: "Convolution27" | |||
| type: "Convolution" | |||
| bottom: "Convolution26" | |||
| top: "Convolution27" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "ReLU1" | |||
| type: "ReLU" | |||
| bottom: "Convolution27" | |||
| top: "Convolution27" | |||
| } | |||
| layer { | |||
| name: "Convolution28" | |||
| type: "Convolution" | |||
| bottom: "Convolution27" | |||
| top: "Convolution28" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "rep_layer_0" | |||
| type: "ReLU" | |||
| bottom: "Convolution28" | |||
| top: "Convolution28" | |||
| } | |||
| layer { | |||
| name: "Convolution29" | |||
| type: "Convolution" | |||
| bottom: "Convolution28" | |||
| top: "Convolution29" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 32 | |||
| pad: 2 | |||
| kernel_size: 5 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "ReLU2" | |||
| type: "ReLU" | |||
| bottom: "Convolution29" | |||
| top: "Convolution29" | |||
| } | |||
| layer { | |||
| name: "Convolution30" | |||
| type: "Convolution" | |||
| bottom: "Convolution29" | |||
| top: "out" | |||
| param { | |||
| lr_mult: 1 | |||
| } | |||
| param { | |||
| lr_mult: 2 | |||
| } | |||
| convolution_param { | |||
| num_output: 2 | |||
| pad: 0 | |||
| kernel_size: 1 | |||
| stride: 1 | |||
| weight_filler { | |||
| type: "msra" | |||
| } | |||
| } | |||
| } | |||
| layer { | |||
| name: "baselines_7_loss_0" | |||
| type: "SoftmaxWithLoss" | |||
| bottom: "out" | |||
| bottom: "gt" | |||
| top: "loss" | |||
| loss_weight: 1.0 | |||
| } | |||