Skip to content

Instantly share code, notes, and snippets.

@keisukefukuda
Created March 12, 2019 06:05
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 keisukefukuda/1d8ad67b1521cc435163501bf5e19cd7 to your computer and use it in GitHub Desktop.
Save keisukefukuda/1d8ad67b1521cc435163501bf5e19cd7 to your computer and use it in GitHub Desktop.
train_pred.prototxt
name: "OctreeDecoder"
#------------------------------------------------------------------------------------------------------------
# INPUT DATA
#------------------------------------------------------------------------------------------------------------
layer {name: "octree_models" type: "OGNData"
top: "octree_model_values" top: "octree_labels"
ogn_data_param {batch_size: 4 source: "model_names.txt" preload_data: false}}
layer {name: "label_to_onehot" type: "LabelToOnehot"
bottom: "octree_labels" top: "onehot_labels"
label_to_onehot_param{num_output: 7497}}
#------------------------------------------------------------------------------------------------------------
#------------------------------------------------------------------------------------------------------------
# FC PROCESSING
#------------------------------------------------------------------------------------------------------------
layer {name: "fc1" type: "InnerProduct"
bottom: "onehot_labels" top: "fc1"
param {lr_mult: 1 decay_mult: 1} param {lr_mult: 1 decay_mult: 1}
inner_product_param {num_output: 1024 weight_filler {type: "msra"} bias_filler { type: 'gaussian' std:0.1}}}
layer {name: 'relu_fc1' type: 'ReLU' bottom: 'fc1' top: 'fc1' relu_param{engine: CAFFE}}
layer {name: "fc2" type: "InnerProduct"
bottom: "fc1" top: "fc2"
param {lr_mult: 1 decay_mult: 1} param {lr_mult: 1 decay_mult: 1}
inner_product_param {num_output: 1024 weight_filler {type: "msra"} bias_filler { type: 'gaussian' std:0.1}}}
layer {name: 'relu_fc2' type: 'ReLU'
bottom: 'fc2' top: 'fc2'
relu_param{engine: CAFFE}}
layer {name: "fc3" type: "InnerProduct"
bottom: "fc2" top: "fc3"
param {lr_mult: 1 decay_mult: 1} param {lr_mult: 1 decay_mult: 1}
inner_product_param {num_output: 7168 weight_filler {type: "msra"} bias_filler { type: 'gaussian' std:0.1}}}
layer {name: 'relu_fc3' type: 'ReLU'
bottom: 'fc3' top: 'fc3'
relu_param{engine: CAFFE}}
#------------------------------------------------------------------------------------------------------------
layer {name: "reshape_intern" type: "Reshape"
bottom: "fc3" top: "reshaped_intern"
reshape_param {shape{dim: 0 dim: 112 dim: 4 dim: 4 dim: 4}}}
layer {name: 'deconv3' type: 'Deconvolution'
bottom: 'reshaped_intern' top: 'deconv3'
param {lr_mult: 1 decay_mult: 1} param { lr_mult: 1 decay_mult: 1 }
convolution_param {num_output: 96 pad: 0 kernel_size: 2 stride: 2 weight_filler { type: 'msra' } bias_filler { type: 'gaussian' std:0.1}}}
layer {name: 'relu_deconv3' type: 'ReLU'
bottom: 'deconv3' top: 'deconv3' relu_param{engine: CAFFE}}
layer{name: "conv3" type: "Convolution"
bottom: "deconv3" top: "conv3"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
convolution_param {engine: CAFFE num_output: 96 pad: 1 kernel_size: 3 stride: 1
weight_filler {type: "msra"} bias_filler {type: 'gaussian' std:0.1}}}
layer {name: 'relu_conv3' type: 'ReLU'
bottom: 'conv3' top: 'conv3' relu_param{engine: CAFFE}}
layer {name: 'deconv2' type: 'Deconvolution'
bottom: 'conv3' top: 'deconv2'
param {lr_mult: 1 decay_mult: 1} param {lr_mult: 1 decay_mult: 1}
convolution_param {num_output: 80 pad: 0 kernel_size: 2 stride: 2
weight_filler {type: 'msra'} bias_filler {type: 'gaussian' std:0.1}}}
layer {name: 'relu_deconv2' type: 'ReLU'
bottom: 'deconv2' top: 'deconv2' relu_param{engine: CAFFE}}
layer{name: "conv2" type: "Convolution"
bottom: "deconv2" top: "conv2"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
convolution_param {engine: CAFFE num_output: 80 pad: 1 kernel_size: 3 stride: 1
weight_filler {type: "msra"} bias_filler {type: 'gaussian' std:0.1}}}
layer {name: 'relu_conv2' type: 'ReLU'
bottom: 'conv2' top: 'conv2' relu_param{engine: CAFFE}}
layer{name: "initial_keys" type: "OGNGenerateKeys"
bottom: "conv2"}
layer {name: "reshape_conv2" type: "Reshape"
bottom: "conv2" top: "reshaped_conv2"
reshape_param {shape{dim: 0 dim: 0 dim: -1}}}
#------------------------------------------------------------------------------------------------------------
# PREDICTION 2
#------------------------------------------------------------------------------------------------------------
layer{name: "value_conv2" type: "Convolution"
bottom: "reshaped_conv2" top: "pred_values2"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
convolution_param {engine: CAFFE num_output: 3 kernel_size: 1 stride: 1
weight_filler {type: "msra"} bias_filler {type: 'gaussian' std:0.1}}}
layer{name: "prep_loss2" type: "OGNLossPrep"
bottom: "reshaped_conv2" bottom: "octree_model_values" top: "prep_loss2"
ogn_loss_prep_param{pr_key_layer: "initial_keys" gt_key_layer: "octree_models"}}
layer{name: "loss0" type: "SoftmaxWithLoss"
bottom: "pred_values2" bottom: "prep_loss2" top: "loss0"
propagate_down: true propagate_down: false loss_weight: 1
loss_param{ignore_label: 3}}
layer{type: "Softmax" name: "pred_values2_softmax"
bottom: "pred_values2" top: "pred_values2_sm"}
#------------------------------------------------------------------------------------------------------------
layer{name: "prop_features2" type: "OGNProp"
bottom: "reshaped_conv2" bottom: "pred_values2_sm" top: "prop_features2"
ogn_prop_param{key_layer: "initial_keys" prop_mode: PROP_PRED}}
layer{name: "deconv1" type: "OGNConv"
bottom: "prop_features2" top: "deconv1_features"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
ogn_conv_param{is_deconv: true filter_size: 2 output_channels: 64 key_layer: "prop_features2"
weight_filler {type: 'msra'} bias_filler {type: 'gaussian' std:0.1}}}
layer {name: 'relu_deconv1' type: 'ReLU'
bottom: 'deconv1_features' top: 'deconv1_features'
relu_param{engine: CAFFE}}
#------------------------------------------------------------------------------------------------------------
# PREDICTION 1
#------------------------------------------------------------------------------------------------------------
layer{name: "value_conv1" type: "Convolution"
bottom: "deconv1_features" top: "pred_values1"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
convolution_param {engine: CAFFE num_output: 3 kernel_size: 1 stride: 1
weight_filler {type: "msra"} bias_filler {type: 'gaussian' std:0.1}}}
layer{name: "prep_loss1" type: "OGNLossPrep"
bottom: "deconv1_features" bottom: "octree_model_values" top: "prep_loss1"
ogn_loss_prep_param{pr_key_layer: "deconv1" gt_key_layer: "octree_models" use_voxel_grid: true}}
layer{name: "loss1" type: "SoftmaxWithLoss"
bottom: "pred_values1" bottom: "prep_loss1" top: "loss1"
propagate_down: true propagate_down: false loss_weight: 1
loss_param{ignore_label: 3}}
layer{type: "Softmax" name: "pred_values1_softmax"
bottom: "pred_values1" top: "pred_values1_sm"}
#------------------------------------------------------------------------------------------------------------
layer{name: "prop_features1" type: "OGNProp"
bottom: "deconv1_features" bottom: "pred_values1_sm" top: "prop_features1"
ogn_prop_param{key_layer: "deconv1" prop_mode: PROP_PRED}}
layer{name: "deconv0" type: "OGNConv"
bottom: "prop_features1" top: "deconv0_features"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
ogn_conv_param{is_deconv: true filter_size: 2 output_channels: 48 key_layer: "prop_features1"
weight_filler {type: 'msra'} bias_filler {type: 'gaussian' std:0.1}}}
layer {name: 'relu_deconv0' type: 'ReLU'
bottom: 'deconv0_features' top: 'deconv0_features'
relu_param{engine: CAFFE}}
#------------------------------------------------------------------------------------------------------------
# PREDICTION 0
#------------------------------------------------------------------------------------------------------------
layer{name: "value_conv0" type: "Convolution"
bottom: "deconv0_features" top: "pred_values0"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
convolution_param {engine: CAFFE num_output: 3 kernel_size: 1 stride: 1
weight_filler {type: "msra"} bias_filler {type: 'gaussian' std:0.1}}}
layer{name: "prep_loss0" type: "OGNLossPrep"
bottom: "deconv0_features" bottom: "octree_model_values" top: "prep_loss0"
ogn_loss_prep_param{pr_key_layer: "deconv0" gt_key_layer: "octree_models" use_voxel_grid: true}}
layer{name: "loss0" type: "SoftmaxWithLoss"
bottom: "pred_values0" bottom: "prep_loss0" top: "loss2"
propagate_down: true propagate_down: false loss_weight: 1
loss_param{ignore_label: 3}}
layer{type: "Softmax" name: "pred_values0_softmax"
bottom: "pred_values0" top: "pred_values0_sm"}
#------------------------------------------------------------------------------------------------------------
layer{name: "prop_features0" type: "OGNProp"
bottom: "deconv0_features" bottom: "pred_values0_sm" top: "prop_features0"
ogn_prop_param{key_layer: "deconv0" prop_mode: PROP_PRED}}
layer{name: "deconv00" type: "OGNConv"
bottom: "prop_features0" top: "deconv00_features"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
ogn_conv_param{is_deconv: true filter_size: 2 output_channels: 32 key_layer: "prop_features0"
weight_filler {type: 'msra'} bias_filler {type: 'gaussian' std:0.1}}}
layer {name: 'relu_deconv00' type: 'ReLU'
bottom: 'deconv00_features' top: 'deconv00_features'
relu_param{engine: CAFFE}}
#------------------------------------------------------------------------------------------------------------
# PREDICTION 00
#------------------------------------------------------------------------------------------------------------
layer{name: "value_conv00" type: "Convolution"
bottom: "deconv00_features" top: "pred_values00"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
convolution_param {engine: CAFFE num_output: 3 kernel_size: 1 stride: 1
weight_filler {type: "msra"} bias_filler {type: 'gaussian' std:0.1}}}
layer{name: "prep_loss00" type: "OGNLossPrep"
bottom: "deconv00_features" bottom: "octree_model_values" top: "prep_loss00"
ogn_loss_prep_param{pr_key_layer: "deconv00" gt_key_layer: "octree_models" use_voxel_grid: true}}
layer{name: "loss00" type: "SoftmaxWithLoss"
bottom: "pred_values00" bottom: "prep_loss00" top: "loss3"
propagate_down: true propagate_down: false loss_weight: 1
loss_param{ignore_label: 3}}
layer{type: "Softmax" name: "pred_values00_softmax"
bottom: "pred_values00" top: "pred_values00_sm"}
#------------------------------------------------------------------------------------------------------------
layer{name: "prop_features00" type: "OGNProp"
bottom: "deconv00_features" bottom: "pred_values00_sm" top: "prop_features00"
ogn_prop_param{key_layer: "deconv00" prop_mode: PROP_PRED}}
layer{name: "deconv000" type: "OGNConv"
bottom: "prop_features00" top: "deconv000_features"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
ogn_conv_param{is_deconv: true filter_size: 2 output_channels: 32 key_layer: "prop_features00"
weight_filler {type: 'msra'} bias_filler {type: 'gaussian' std:0.1}}}
layer {name: 'relu_deconv000' type: 'ReLU'
bottom: 'deconv000_features' top: 'deconv000_features'
relu_param{engine: CAFFE}}
#------------------------------------------------------------------------------------------------------------
# PREDICTION 000
#------------------------------------------------------------------------------------------------------------
layer{name: "value_conv000" type: "Convolution"
bottom: "deconv000_features" top: "pred_values000"
param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 }
convolution_param {engine: CAFFE num_output: 3 kernel_size: 1 stride: 1
weight_filler {type: "msra"} bias_filler {type: 'gaussian' std:0.1}}}
layer{name: "prep_loss000" type: "OGNLossPrep"
bottom: "deconv000_features" bottom: "octree_model_values" top: "prep_loss000"
ogn_loss_prep_param{pr_key_layer: "deconv000" gt_key_layer: "octree_models" use_voxel_grid: true}}
layer{name: "loss000" type: "SoftmaxWithLoss"
bottom: "pred_values000" bottom: "prep_loss000" top: "loss4"
propagate_down: true propagate_down: false loss_weight: 1
loss_param{ignore_label: 3}}
#------------------------------------------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment