Skip to content

Instantly share code, notes, and snippets.

@gustavla
Last active January 17, 2020 03:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gustavla/ecf50d3730103beb9c30a306fd70d158 to your computer and use it in GitHub Desktop.
Save gustavla/ecf50d3730103beb9c30a306fd70d158 to your computer and use it in GitHub Desktop.
PWC-Net train.prototxt
# use the same data augmentation scheme as the FlowNet2 paper
layer {
name: "img0"
type: "CustomData"
top: "img0"
top: "img1"
top: "flow_gt"
top: "aux"
include {
phase: TRAIN
}
data_param {
source: "/mnt/zfs/projects/ml_flow/v1.2/dispflownet-release/data/FlyingChairs_release_lmdb" # PLEASE MODIFY TO YOUR LOCAL DIRECTORY
batch_size: 8
backend: LMDB
preselection_file: "/mnt/zfs/projects/ml_flow/v1.2/dispflownet-release/data/FlyingChairs_release_test_train_split.list" # PLEASE MODIFY TO YOUR LOCAL DIRECTORY
preselection_label: 1
rand_permute: true
rand_permute_seed: 77
slice_point: 3
slice_point: 6
slice_point: 8
encoding: UINT8
encoding: UINT8
encoding: UINT16FLOW
encoding: BOOL1
verbose: true
}
}
layer {
name: "img0_subtract"
type: "Eltwise"
bottom: "img0"
top: "img0_subtract"
eltwise_param {
operation: SUM
coeff: 0.00392156862745
}
}
layer {
name: "img1_subtract"
type: "Eltwise"
bottom: "img1"
top: "img1_subtract"
eltwise_param {
operation: SUM
coeff: 0.00392156862745
}
}
layer {
name: "img0_aug"
type: "DataAugmentation"
bottom: "img0_subtract"
top: "img0_aug"
top: "img0_aug_params"
propagate_down: false
augmentation_param {
max_multiplier: 1
augment_during_test: false
recompute_mean: 1000
mean_per_pixel: false
translate {
rand_type: "uniform_bernoulli"
exp: false
mean: 0
spread: 0.4
prob: 1.0
}
rotate {
rand_type: "uniform_bernoulli"
exp: false
mean: 0
spread: 0.4
prob: 1.0
}
zoom {
rand_type: "uniform_bernoulli"
exp: true
mean: 0.2
spread: 0.4
prob: 1.0
}
squeeze {
rand_type: "uniform_bernoulli"
exp: true
mean: 0
spread: 0.3
prob: 1.0
}
lmult_pow {
rand_type: "uniform_bernoulli"
exp: true
mean: -0.2
spread: 0.4
prob: 1.0
}
lmult_mult {
rand_type: "uniform_bernoulli"
exp: true
mean: 0.0
spread: 0.4
prob: 1.0
}
lmult_add {
rand_type: "uniform_bernoulli"
exp: false
mean: 0
spread: 0.03
prob: 1.0
}
sat_pow {
rand_type: "uniform_bernoulli"
exp: true
mean: 0
spread: 0.4
prob: 1.0
}
sat_mult {
rand_type: "uniform_bernoulli"
exp: true
mean: -0.3
spread: 0.5
prob: 1.0
}
sat_add {
rand_type: "uniform_bernoulli"
exp: false
mean: 0
spread: 0.03
prob: 1.0
}
col_pow {
rand_type: "gaussian_bernoulli"
exp: true
mean: 0
spread: 0.4
prob: 1.0
}
col_mult {
rand_type: "gaussian_bernoulli"
exp: true
mean: 0
spread: 0.2
prob: 1.0
}
col_add {
rand_type: "gaussian_bernoulli"
exp: false
mean: 0
spread: 0.02
prob: 1.0
}
ladd_pow {
rand_type: "gaussian_bernoulli"
exp: true
mean: 0
spread: 0.4
prob: 1.0
}
ladd_mult {
rand_type: "gaussian_bernoulli"
exp: true
mean: 0.0
spread: 0.4
prob: 1.0
}
ladd_add {
rand_type: "gaussian_bernoulli"
exp: false
mean: 0
spread: 0.04
prob: 1.0
}
col_rotate {
rand_type: "uniform_bernoulli"
exp: false
mean: 0
spread: 1
prob: 1.0
}
crop_width: 448
crop_height: 320
chromatic_eigvec: 0.51
chromatic_eigvec: 0.56
chromatic_eigvec: 0.65
chromatic_eigvec: 0.79
chromatic_eigvec: 0.01
chromatic_eigvec: -0.62
chromatic_eigvec: 0.35
chromatic_eigvec: -0.83
chromatic_eigvec: 0.44
noise {
rand_type: "uniform_bernoulli"
exp: false
mean: 0.03
spread: 0.03
prob: 1.0
}
}
}
layer {
name: "GenerateAugmentationParameters1"
type: "GenerateAugmentationParameters"
bottom: "img0_aug_params"
bottom: "img0_subtract"
bottom: "img0_aug"
top: "GenerateAugmentationParameters1"
coeff_schedule_param {
half_life: 50000
initial_coeff: 0.5
final_coeff: 1
}
augmentation_param {
augment_during_test: false
translate {
rand_type: "gaussian_bernoulli"
exp: false
mean: 0
spread: 0.03
prob: 1.0
}
rotate {
rand_type: "gaussian_bernoulli"
exp: false
mean: 0
spread: 0.03
prob: 1.0
}
zoom {
rand_type: "gaussian_bernoulli"
exp: true
mean: 0
spread: 0.03
prob: 1.0
}
gamma {
rand_type: "gaussian_bernoulli"
exp: true
mean: 0
spread: 0.02
prob: 1.0
}
brightness {
rand_type: "gaussian_bernoulli"
exp: false
mean: 0
spread: 0.02
prob: 1.0
}
contrast {
rand_type: "gaussian_bernoulli"
exp: true
mean: 0
spread: 0.02
prob: 1.0
}
color {
rand_type: "gaussian_bernoulli"
exp: true
mean: 0
spread: 0.02
prob: 1.0
}
}
}
layer {
name: "img1_aug"
type: "DataAugmentation"
bottom: "img1_subtract"
bottom: "GenerateAugmentationParameters1"
top: "img1_aug"
propagate_down: false
propagate_down: false
augmentation_param {
max_multiplier: 1
augment_during_test: false
recompute_mean: 1000
mean_per_pixel: false
crop_width: 448
crop_height: 320
chromatic_eigvec: 0.51
chromatic_eigvec: 0.56
chromatic_eigvec: 0.65
chromatic_eigvec: 0.79
chromatic_eigvec: 0.01
chromatic_eigvec: -0.62
chromatic_eigvec: 0.35
chromatic_eigvec: -0.83
chromatic_eigvec: 0.44
}
}
layer {
name: "flow_gt_aug"
type: "FlowAugmentation"
bottom: "flow_gt"
bottom: "img0_aug_params"
bottom: "GenerateAugmentationParameters1"
top: "flow_gt_aug"
augmentation_param {
crop_width: 448
crop_height: 320
}
}
layer {
name: "scaled_flow_gt"
type: "Eltwise"
bottom: "flow_gt_aug"
top: "scaled_flow_gt"
eltwise_param {
operation: SUM
coeff: 0.05
}
}
layer {
name: "conv0_1_a"
type: "Convolution"
bottom: "img0_aug"
bottom: "img1_aug"
top: "conv0_1_a"
top: "conv1_1_a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_1_a"
type: "ReLU"
bottom: "conv0_1_a"
top: "conv0_1_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_1_a"
type: "ReLU"
bottom: "conv1_1_a"
top: "conv1_1_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_1_aa"
type: "Convolution"
bottom: "conv0_1_a"
bottom: "conv1_1_a"
top: "conv0_1_aa"
top: "conv1_1_aa"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_1_aa"
type: "ReLU"
bottom: "conv0_1_aa"
top: "conv0_1_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_1_aa"
type: "ReLU"
bottom: "conv1_1_aa"
top: "conv1_1_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_1_b"
type: "Convolution"
bottom: "conv0_1_aa"
bottom: "conv1_1_aa"
top: "conv0_1_b"
top: "conv1_1_b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 16
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_1_b"
type: "ReLU"
bottom: "conv0_1_b"
top: "conv0_1_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_1_b"
type: "ReLU"
bottom: "conv1_1_b"
top: "conv1_1_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_2_a"
type: "Convolution"
bottom: "conv0_1_b"
bottom: "conv1_1_b"
top: "conv0_2_a"
top: "conv1_2_a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_2_a"
type: "ReLU"
bottom: "conv0_2_a"
top: "conv0_2_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_2_a"
type: "ReLU"
bottom: "conv1_2_a"
top: "conv1_2_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_2_aa"
type: "Convolution"
bottom: "conv0_2_a"
bottom: "conv1_2_a"
top: "conv0_2_aa"
top: "conv1_2_aa"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_2_aa"
type: "ReLU"
bottom: "conv0_2_aa"
top: "conv0_2_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_2_aa"
type: "ReLU"
bottom: "conv1_2_aa"
top: "conv1_2_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_2_b"
type: "Convolution"
bottom: "conv0_2_aa"
bottom: "conv1_2_aa"
top: "conv0_2_b"
top: "conv1_2_b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_2_b"
type: "ReLU"
bottom: "conv0_2_b"
top: "conv0_2_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_2_b"
type: "ReLU"
bottom: "conv1_2_b"
top: "conv1_2_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_3_a"
type: "Convolution"
bottom: "conv0_2_b"
bottom: "conv1_2_b"
top: "conv0_3_a"
top: "conv1_3_a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_3_a"
type: "ReLU"
bottom: "conv0_3_a"
top: "conv0_3_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_3_a"
type: "ReLU"
bottom: "conv1_3_a"
top: "conv1_3_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_3_aa"
type: "Convolution"
bottom: "conv0_3_a"
bottom: "conv1_3_a"
top: "conv0_3_aa"
top: "conv1_3_aa"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_3_aa"
type: "ReLU"
bottom: "conv0_3_aa"
top: "conv0_3_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_3_aa"
type: "ReLU"
bottom: "conv1_3_aa"
top: "conv1_3_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_3_b"
type: "Convolution"
bottom: "conv0_3_aa"
bottom: "conv1_3_aa"
top: "conv0_3_b"
top: "conv1_3_b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_3_b"
type: "ReLU"
bottom: "conv0_3_b"
top: "conv0_3_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_3_b"
type: "ReLU"
bottom: "conv1_3_b"
top: "conv1_3_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_4_a"
type: "Convolution"
bottom: "conv0_3_b"
bottom: "conv1_3_b"
top: "conv0_4_a"
top: "conv1_4_a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_4_a"
type: "ReLU"
bottom: "conv0_4_a"
top: "conv0_4_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_4_a"
type: "ReLU"
bottom: "conv1_4_a"
top: "conv1_4_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_4_aa"
type: "Convolution"
bottom: "conv0_4_a"
bottom: "conv1_4_a"
top: "conv0_4_aa"
top: "conv1_4_aa"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_4_aa"
type: "ReLU"
bottom: "conv0_4_aa"
top: "conv0_4_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_4_aa"
type: "ReLU"
bottom: "conv1_4_aa"
top: "conv1_4_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_4_b"
type: "Convolution"
bottom: "conv0_4_aa"
bottom: "conv1_4_aa"
top: "conv0_4_b"
top: "conv1_4_b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_4_b"
type: "ReLU"
bottom: "conv0_4_b"
top: "conv0_4_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_4_b"
type: "ReLU"
bottom: "conv1_4_b"
top: "conv1_4_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_5_a"
type: "Convolution"
bottom: "conv0_4_b"
bottom: "conv1_4_b"
top: "conv0_5_a"
top: "conv1_5_a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_5_a"
type: "ReLU"
bottom: "conv0_5_a"
top: "conv0_5_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_5_a"
type: "ReLU"
bottom: "conv1_5_a"
top: "conv1_5_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_5_aa"
type: "Convolution"
bottom: "conv0_5_a"
bottom: "conv1_5_a"
top: "conv0_5_aa"
top: "conv1_5_aa"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_5_aa"
type: "ReLU"
bottom: "conv0_5_aa"
top: "conv0_5_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_5_aa"
type: "ReLU"
bottom: "conv1_5_aa"
top: "conv1_5_aa"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_5_b"
type: "Convolution"
bottom: "conv0_5_aa"
bottom: "conv1_5_aa"
top: "conv0_5_b"
top: "conv1_5_b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_5_b"
type: "ReLU"
bottom: "conv0_5_b"
top: "conv0_5_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_5_b"
type: "ReLU"
bottom: "conv1_5_b"
top: "conv1_5_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Convolution1"
type: "Convolution"
bottom: "conv0_5_b"
bottom: "conv1_5_b"
top: "Convolution1"
top: "Convolution2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 196
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "conv0_6_a"
type: "Convolution"
bottom: "Convolution1"
bottom: "Convolution2"
top: "conv0_6_a"
top: "conv1_6_a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 196
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_6_a"
type: "ReLU"
bottom: "conv0_6_a"
top: "conv0_6_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_6_a"
type: "ReLU"
bottom: "conv1_6_a"
top: "conv1_6_a"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv0_6_b"
type: "Convolution"
bottom: "conv0_6_a"
bottom: "conv1_6_a"
top: "conv0_6_b"
top: "conv1_6_b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 196
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "Relu0_6_b"
type: "ReLU"
bottom: "conv0_6_b"
top: "conv0_6_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Relu1_6_b"
type: "ReLU"
bottom: "conv1_6_b"
top: "conv1_6_b"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "Correlation1"
type: "Correlation"
bottom: "conv0_6_b"
bottom: "conv1_6_b"
top: "Correlation1"
correlation_param {
pad: 4
kernel_size: 1
max_displacement: 4
stride_1: 1
stride_2: 1
}
}
layer {
name: "corr6"
type: "ReLU"
bottom: "Correlation1"
top: "Correlation1"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "conv6_0"
type: "Convolution"
bottom: "Correlation1"
top: "conv6_0"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu6_0"
type: "ReLU"
bottom: "conv6_0"
top: "conv6_0"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat6_0"
type: "Concat"
bottom: "conv6_0"
bottom: "Correlation1"
top: "denseconcat6_0"
concat_param {
axis: 1
}
}
layer {
name: "conv6_1"
type: "Convolution"
bottom: "denseconcat6_0"
top: "conv6_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu6_1"
type: "ReLU"
bottom: "conv6_1"
top: "conv6_1"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat6_1"
type: "Concat"
bottom: "conv6_1"
bottom: "denseconcat6_0"
top: "denseconcat6_1"
concat_param {
axis: 1
}
}
layer {
name: "conv6_2"
type: "Convolution"
bottom: "denseconcat6_1"
top: "conv6_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu6_2"
type: "ReLU"
bottom: "conv6_2"
top: "conv6_2"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat6_2"
type: "Concat"
bottom: "conv6_2"
bottom: "denseconcat6_1"
top: "denseconcat6_2"
concat_param {
axis: 1
}
}
layer {
name: "conv6_3"
type: "Convolution"
bottom: "denseconcat6_2"
top: "conv6_3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu6_3"
type: "ReLU"
bottom: "conv6_3"
top: "conv6_3"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat6_3"
type: "Concat"
bottom: "conv6_3"
bottom: "denseconcat6_2"
top: "denseconcat6_3"
concat_param {
axis: 1
}
}
layer {
name: "conv6_4"
type: "Convolution"
bottom: "denseconcat6_3"
top: "conv6_4"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu6_4"
type: "ReLU"
bottom: "conv6_4"
top: "conv6_4"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat6_4"
type: "Concat"
bottom: "conv6_4"
bottom: "denseconcat6_3"
top: "denseconcat6_4"
concat_param {
axis: 1
}
}
layer {
name: "predict_flow6"
type: "Convolution"
bottom: "denseconcat6_4"
top: "predict_flow6"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "upsample_flow_6to5"
type: "Deconvolution"
bottom: "predict_flow6"
top: "upsample_flow_6to5"
param {
lr_mult: 1
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 4
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "upsample_feature_6to5"
type: "Deconvolution"
bottom: "denseconcat6_4"
top: "upsample_feature_6to5"
param {
lr_mult: 1
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 4
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "scale_flow_6to5"
type: "Eltwise"
bottom: "upsample_flow_6to5"
top: "scale_flow_6to5"
eltwise_param {
operation: SUM
coeff: 0.625
}
}
layer {
name: "warped_image5"
type: "Warp"
bottom: "conv1_5_b"
bottom: "scale_flow_6to5"
top: "warped_image5"
}
layer {
name: "Correlation2"
type: "Correlation"
bottom: "conv0_5_b"
bottom: "warped_image5"
top: "Correlation2"
correlation_param {
pad: 4
kernel_size: 1
max_displacement: 4
stride_1: 1
stride_2: 1
}
}
layer {
name: "corr5"
type: "ReLU"
bottom: "Correlation2"
top: "Correlation2"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "concat5"
type: "Concat"
bottom: "Correlation2"
bottom: "conv0_5_b"
bottom: "upsample_flow_6to5"
bottom: "upsample_feature_6to5"
top: "concat5"
concat_param {
axis: 1
}
}
layer {
name: "conv5_0"
type: "Convolution"
bottom: "concat5"
top: "conv5_0"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu5_0"
type: "ReLU"
bottom: "conv5_0"
top: "conv5_0"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat5_0"
type: "Concat"
bottom: "conv5_0"
bottom: "concat5"
top: "denseconcat5_0"
concat_param {
axis: 1
}
}
layer {
name: "conv5_1"
type: "Convolution"
bottom: "denseconcat5_0"
top: "conv5_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu5_1"
type: "ReLU"
bottom: "conv5_1"
top: "conv5_1"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat5_1"
type: "Concat"
bottom: "conv5_1"
bottom: "denseconcat5_0"
top: "denseconcat5_1"
concat_param {
axis: 1
}
}
layer {
name: "conv5_2"
type: "Convolution"
bottom: "denseconcat5_1"
top: "conv5_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu5_2"
type: "ReLU"
bottom: "conv5_2"
top: "conv5_2"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat5_2"
type: "Concat"
bottom: "conv5_2"
bottom: "denseconcat5_1"
top: "denseconcat5_2"
concat_param {
axis: 1
}
}
layer {
name: "conv5_3"
type: "Convolution"
bottom: "denseconcat5_2"
top: "conv5_3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu5_3"
type: "ReLU"
bottom: "conv5_3"
top: "conv5_3"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat5_3"
type: "Concat"
bottom: "conv5_3"
bottom: "denseconcat5_2"
top: "denseconcat5_3"
concat_param {
axis: 1
}
}
layer {
name: "conv5_4"
type: "Convolution"
bottom: "denseconcat5_3"
top: "conv5_4"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu5_4"
type: "ReLU"
bottom: "conv5_4"
top: "conv5_4"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat5_4"
type: "Concat"
bottom: "conv5_4"
bottom: "denseconcat5_3"
top: "denseconcat5_4"
concat_param {
axis: 1
}
}
layer {
name: "predict_flow5"
type: "Convolution"
bottom: "denseconcat5_4"
top: "predict_flow5"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "upsample_flow_5to4"
type: "Deconvolution"
bottom: "predict_flow5"
top: "upsample_flow_5to4"
param {
lr_mult: 1
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 4
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "upsample_feature_5to4"
type: "Deconvolution"
bottom: "denseconcat5_4"
top: "upsample_feature_5to4"
param {
lr_mult: 1
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 4
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "scale_flow_5to4"
type: "Eltwise"
bottom: "upsample_flow_5to4"
top: "scale_flow_5to4"
eltwise_param {
operation: SUM
coeff: 1.25
}
}
layer {
name: "warped_image4"
type: "Warp"
bottom: "conv1_4_b"
bottom: "scale_flow_5to4"
top: "warped_image4"
}
layer {
name: "Correlation3"
type: "Correlation"
bottom: "conv0_4_b"
bottom: "warped_image4"
top: "Correlation3"
correlation_param {
pad: 4
kernel_size: 1
max_displacement: 4
stride_1: 1
stride_2: 1
}
}
layer {
name: "corr4"
type: "ReLU"
bottom: "Correlation3"
top: "Correlation3"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "concat4"
type: "Concat"
bottom: "Correlation3"
bottom: "conv0_4_b"
bottom: "upsample_flow_5to4"
bottom: "upsample_feature_5to4"
top: "concat4"
concat_param {
axis: 1
}
}
layer {
name: "conv4_0"
type: "Convolution"
bottom: "concat4"
top: "conv4_0"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu4_0"
type: "ReLU"
bottom: "conv4_0"
top: "conv4_0"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat4_0"
type: "Concat"
bottom: "conv4_0"
bottom: "concat4"
top: "denseconcat4_0"
concat_param {
axis: 1
}
}
layer {
name: "conv4_1"
type: "Convolution"
bottom: "denseconcat4_0"
top: "conv4_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu4_1"
type: "ReLU"
bottom: "conv4_1"
top: "conv4_1"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat4_1"
type: "Concat"
bottom: "conv4_1"
bottom: "denseconcat4_0"
top: "denseconcat4_1"
concat_param {
axis: 1
}
}
layer {
name: "conv4_2"
type: "Convolution"
bottom: "denseconcat4_1"
top: "conv4_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu4_2"
type: "ReLU"
bottom: "conv4_2"
top: "conv4_2"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat4_2"
type: "Concat"
bottom: "conv4_2"
bottom: "denseconcat4_1"
top: "denseconcat4_2"
concat_param {
axis: 1
}
}
layer {
name: "conv4_3"
type: "Convolution"
bottom: "denseconcat4_2"
top: "conv4_3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu4_3"
type: "ReLU"
bottom: "conv4_3"
top: "conv4_3"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat4_3"
type: "Concat"
bottom: "conv4_3"
bottom: "denseconcat4_2"
top: "denseconcat4_3"
concat_param {
axis: 1
}
}
layer {
name: "conv4_4"
type: "Convolution"
bottom: "denseconcat4_3"
top: "conv4_4"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu4_4"
type: "ReLU"
bottom: "conv4_4"
top: "conv4_4"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat4_4"
type: "Concat"
bottom: "conv4_4"
bottom: "denseconcat4_3"
top: "denseconcat4_4"
concat_param {
axis: 1
}
}
layer {
name: "predict_flow4"
type: "Convolution"
bottom: "denseconcat4_4"
top: "predict_flow4"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "upsample_flow_4to3"
type: "Deconvolution"
bottom: "predict_flow4"
top: "upsample_flow_4to3"
param {
lr_mult: 1
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 4
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "upsample_feature_4to3"
type: "Deconvolution"
bottom: "denseconcat4_4"
top: "upsample_feature_4to3"
param {
lr_mult: 1
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 4
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "scale_flow_4to3"
type: "Eltwise"
bottom: "upsample_flow_4to3"
top: "scale_flow_4to3"
eltwise_param {
operation: SUM
coeff: 2.5
}
}
layer {
name: "warped_image3"
type: "Warp"
bottom: "conv1_3_b"
bottom: "scale_flow_4to3"
top: "warped_image3"
}
layer {
name: "Correlation4"
type: "Correlation"
bottom: "conv0_3_b"
bottom: "warped_image3"
top: "Correlation4"
correlation_param {
pad: 4
kernel_size: 1
max_displacement: 4
stride_1: 1
stride_2: 1
}
}
layer {
name: "corr3"
type: "ReLU"
bottom: "Correlation4"
top: "Correlation4"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "concat3"
type: "Concat"
bottom: "Correlation4"
bottom: "conv0_3_b"
bottom: "upsample_flow_4to3"
bottom: "upsample_feature_4to3"
top: "concat3"
concat_param {
axis: 1
}
}
layer {
name: "conv3_0"
type: "Convolution"
bottom: "concat3"
top: "conv3_0"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu3_0"
type: "ReLU"
bottom: "conv3_0"
top: "conv3_0"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat3_0"
type: "Concat"
bottom: "conv3_0"
bottom: "concat3"
top: "denseconcat3_0"
concat_param {
axis: 1
}
}
layer {
name: "conv3_1"
type: "Convolution"
bottom: "denseconcat3_0"
top: "conv3_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu3_1"
type: "ReLU"
bottom: "conv3_1"
top: "conv3_1"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat3_1"
type: "Concat"
bottom: "conv3_1"
bottom: "denseconcat3_0"
top: "denseconcat3_1"
concat_param {
axis: 1
}
}
layer {
name: "conv3_2"
type: "Convolution"
bottom: "denseconcat3_1"
top: "conv3_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu3_2"
type: "ReLU"
bottom: "conv3_2"
top: "conv3_2"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat3_2"
type: "Concat"
bottom: "conv3_2"
bottom: "denseconcat3_1"
top: "denseconcat3_2"
concat_param {
axis: 1
}
}
layer {
name: "conv3_3"
type: "Convolution"
bottom: "denseconcat3_2"
top: "conv3_3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu3_3"
type: "ReLU"
bottom: "conv3_3"
top: "conv3_3"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat3_3"
type: "Concat"
bottom: "conv3_3"
bottom: "denseconcat3_2"
top: "denseconcat3_3"
concat_param {
axis: 1
}
}
layer {
name: "conv3_4"
type: "Convolution"
bottom: "denseconcat3_3"
top: "conv3_4"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu3_4"
type: "ReLU"
bottom: "conv3_4"
top: "conv3_4"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat3_4"
type: "Concat"
bottom: "conv3_4"
bottom: "denseconcat3_3"
top: "denseconcat3_4"
concat_param {
axis: 1
}
}
layer {
name: "predict_flow3"
type: "Convolution"
bottom: "denseconcat3_4"
top: "predict_flow3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "upsample_flow_3to2"
type: "Deconvolution"
bottom: "predict_flow3"
top: "upsample_flow_3to2"
param {
lr_mult: 1
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 4
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "upsample_feature_3to2"
type: "Deconvolution"
bottom: "denseconcat3_4"
top: "upsample_feature_3to2"
param {
lr_mult: 1
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 4
stride: 2
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "scale_flow_3to2"
type: "Eltwise"
bottom: "upsample_flow_3to2"
top: "scale_flow_3to2"
eltwise_param {
operation: SUM
coeff: 5.0
}
}
layer {
name: "warped_image2"
type: "Warp"
bottom: "conv1_2_b"
bottom: "scale_flow_3to2"
top: "warped_image2"
}
layer {
name: "Correlation5"
type: "Correlation"
bottom: "conv0_2_b"
bottom: "warped_image2"
top: "Correlation5"
correlation_param {
pad: 4
kernel_size: 1
max_displacement: 4
stride_1: 1
stride_2: 1
}
}
layer {
name: "corr2"
type: "ReLU"
bottom: "Correlation5"
top: "Correlation5"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "concat2"
type: "Concat"
bottom: "Correlation5"
bottom: "conv0_2_b"
bottom: "upsample_flow_3to2"
bottom: "upsample_feature_3to2"
top: "concat2"
concat_param {
axis: 1
}
}
layer {
name: "conv2_0"
type: "Convolution"
bottom: "concat2"
top: "conv2_0"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu2_0"
type: "ReLU"
bottom: "conv2_0"
top: "conv2_0"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat2_0"
type: "Concat"
bottom: "conv2_0"
bottom: "concat2"
top: "denseconcat2_0"
concat_param {
axis: 1
}
}
layer {
name: "conv2_1"
type: "Convolution"
bottom: "denseconcat2_0"
top: "conv2_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu2_1"
type: "ReLU"
bottom: "conv2_1"
top: "conv2_1"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat2_1"
type: "Concat"
bottom: "conv2_1"
bottom: "denseconcat2_0"
top: "denseconcat2_1"
concat_param {
axis: 1
}
}
layer {
name: "conv2_2"
type: "Convolution"
bottom: "denseconcat2_1"
top: "conv2_2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu2_2"
type: "ReLU"
bottom: "conv2_2"
top: "conv2_2"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat2_2"
type: "Concat"
bottom: "conv2_2"
bottom: "denseconcat2_1"
top: "denseconcat2_2"
concat_param {
axis: 1
}
}
layer {
name: "conv2_3"
type: "Convolution"
bottom: "denseconcat2_2"
top: "conv2_3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu2_3"
type: "ReLU"
bottom: "conv2_3"
top: "conv2_3"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat2_3"
type: "Concat"
bottom: "conv2_3"
bottom: "denseconcat2_2"
top: "denseconcat2_3"
concat_param {
axis: 1
}
}
layer {
name: "conv2_4"
type: "Convolution"
bottom: "denseconcat2_3"
top: "conv2_4"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu2_4"
type: "ReLU"
bottom: "conv2_4"
top: "conv2_4"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "denseconcat2_4"
type: "Concat"
bottom: "conv2_4"
bottom: "denseconcat2_3"
top: "denseconcat2_4"
concat_param {
axis: 1
}
}
layer {
name: "predict_flow_ini"
type: "Convolution"
bottom: "denseconcat2_4"
top: "predict_flow_ini"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "dc_conv1"
type: "Convolution"
bottom: "denseconcat2_4"
top: "dc_conv1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu_dc1"
type: "ReLU"
bottom: "dc_conv1"
top: "dc_conv1"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "dc_conv2"
type: "Convolution"
bottom: "dc_conv1"
top: "dc_conv2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 2
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
dilation: 2
}
}
layer {
name: "relu_dc2"
type: "ReLU"
bottom: "dc_conv2"
top: "dc_conv2"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "dc_conv3"
type: "Convolution"
bottom: "dc_conv2"
top: "dc_conv3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 4
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
dilation: 4
}
}
layer {
name: "relu_dc3"
type: "ReLU"
bottom: "dc_conv3"
top: "dc_conv3"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "dc_conv4"
type: "Convolution"
bottom: "dc_conv3"
top: "dc_conv4"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 8
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
dilation: 8
}
}
layer {
name: "relu_dc4"
type: "ReLU"
bottom: "dc_conv4"
top: "dc_conv4"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "dc_conv5"
type: "Convolution"
bottom: "dc_conv4"
top: "dc_conv5"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 16
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
dilation: 16
}
}
layer {
name: "relu_dc5"
type: "ReLU"
bottom: "dc_conv5"
top: "dc_conv5"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "dc_conv6"
type: "Convolution"
bottom: "dc_conv5"
top: "dc_conv6"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "relu_dc6"
type: "ReLU"
bottom: "dc_conv6"
top: "dc_conv6"
relu_param {
negative_slope: 0.1
}
}
layer {
name: "predict_flow_inc"
type: "Convolution"
bottom: "dc_conv6"
top: "predict_flow_inc"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 1
decay_mult: 0
}
convolution_param {
num_output: 2
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
engine: CUDNN
}
}
layer {
name: "predict_flow2"
type: "Eltwise"
bottom: "predict_flow_ini"
bottom: "predict_flow_inc"
top: "predict_flow2"
eltwise_param {
operation: SUM
}
}
layer {
name: "scaled_flow_gt2"
type: "Downsample"
bottom: "scaled_flow_gt"
bottom: "predict_flow2"
top: "scaled_flow_gt2"
propagate_down: false
propagate_down: false
}
layer {
name: "loss2"
type: "L1Loss"
bottom: "predict_flow2"
bottom: "scaled_flow_gt2"
top: "loss2"
loss_weight: 0.005
l1_loss_param {
l2_per_location: true
}
}
layer {
name: "scaled_flow_gt3"
type: "Downsample"
bottom: "scaled_flow_gt"
bottom: "predict_flow3"
top: "scaled_flow_gt3"
propagate_down: false
propagate_down: false
}
layer {
name: "loss3"
type: "L1Loss"
bottom: "predict_flow3"
bottom: "scaled_flow_gt3"
top: "loss3"
loss_weight: 0.01
l1_loss_param {
l2_per_location: true
}
}
layer {
name: "scaled_flow_gt4"
type: "Downsample"
bottom: "scaled_flow_gt"
bottom: "predict_flow4"
top: "scaled_flow_gt4"
propagate_down: false
propagate_down: false
}
layer {
name: "loss4"
type: "L1Loss"
bottom: "predict_flow4"
bottom: "scaled_flow_gt4"
top: "loss4"
loss_weight: 0.02
l1_loss_param {
l2_per_location: true
}
}
layer {
name: "scaled_flow_gt5"
type: "Downsample"
bottom: "scaled_flow_gt"
bottom: "predict_flow5"
top: "scaled_flow_gt5"
propagate_down: false
propagate_down: false
}
layer {
name: "loss5"
type: "L1Loss"
bottom: "predict_flow5"
bottom: "scaled_flow_gt5"
top: "loss5"
loss_weight: 0.08
l1_loss_param {
l2_per_location: true
}
}
layer {
name: "scaled_flow_gt6"
type: "Downsample"
bottom: "scaled_flow_gt"
bottom: "predict_flow6"
top: "scaled_flow_gt6"
propagate_down: false
propagate_down: false
}
layer {
name: "loss6"
type: "L1Loss"
bottom: "predict_flow6"
bottom: "scaled_flow_gt6"
top: "loss6"
loss_weight: 0.32
l1_loss_param {
l2_per_location: true
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment