name: "SqueezeNet1dot1" input: "data" input_shape { dim: 1 dim: 3 dim: 224 dim: 224 } layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" convolution_param { num_output: 64 kernel_size: 3 stride: 2 } } layer { name: "relu_conv1" type: "ReLU" bottom: "conv1" top: "conv1" } layer { name: "pool1" type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "fire2/squeeze1x1" type: "Convolution" bottom: "pool1" top: "fire2/squeeze1x1" convolution_param { num_output: 16 kernel_size: 1 } } layer { name: "fire2/relu_squeeze1x1" type: "ReLU" bottom: "fire2/squeeze1x1" top: "fire2/squeeze1x1" } layer { name: "fire2/expand1x1" type: "Convolution" bottom: "fire2/squeeze1x1" top: "fire2/expand1x1" convolution_param { num_output: 64 kernel_size: 1 } } layer { name: "fire2/relu_expand1x1" type: "ReLU" bottom: "fire2/expand1x1" top: "fire2/expand1x1" } layer { name: "fire2/expand3x3" type: "Convolution" bottom: "fire2/squeeze1x1" top: "fire2/expand3x3" convolution_param { num_output: 64 pad: 1 kernel_size: 3 } } layer { name: "fire2/relu_expand3x3" type: "ReLU" bottom: "fire2/expand3x3" top: "fire2/expand3x3" } layer { name: "fire2/concat" type: "Concat" bottom: "fire2/expand1x1" bottom: "fire2/expand3x3" top: "fire2/concat" } layer { name: "fire3/squeeze1x1" type: "Convolution" bottom: "fire2/concat" top: "fire3/squeeze1x1" convolution_param { num_output: 16 kernel_size: 1 } } layer { name: "fire3/relu_squeeze1x1" type: "ReLU" bottom: "fire3/squeeze1x1" top: "fire3/squeeze1x1" } layer { name: "fire3/expand1x1" type: "Convolution" bottom: "fire3/squeeze1x1" top: "fire3/expand1x1" convolution_param { num_output: 64 kernel_size: 1 } } layer { name: "fire3/relu_expand1x1" type: "ReLU" bottom: "fire3/expand1x1" top: "fire3/expand1x1" } layer { name: "fire3/expand3x3" type: "Convolution" bottom: "fire3/squeeze1x1" top: "fire3/expand3x3" convolution_param { num_output: 64 pad: 1 kernel_size: 3 } } layer { name: "fire3/relu_expand3x3" type: "ReLU" bottom: "fire3/expand3x3" top: "fire3/expand3x3" } layer { name: "fire3/concat" type: "Concat" bottom: "fire3/expand1x1" bottom: "fire3/expand3x3" top: "fire3/concat" } layer { name: "pool3" type: "Pooling" bottom: "fire3/concat" top: "pool3" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "fire4/squeeze1x1" type: "Convolution" bottom: "pool3" top: "fire4/squeeze1x1" convolution_param { num_output: 32 kernel_size: 1 } } layer { name: "fire4/relu_squeeze1x1" type: "ReLU" bottom: "fire4/squeeze1x1" top: "fire4/squeeze1x1" } layer { name: "fire4/expand1x1" type: "Convolution" bottom: "fire4/squeeze1x1" top: "fire4/expand1x1" convolution_param { num_output: 128 kernel_size: 1 } } layer { name: "fire4/relu_expand1x1" type: "ReLU" bottom: "fire4/expand1x1" top: "fire4/expand1x1" } layer { name: "fire4/expand3x3" type: "Convolution" bottom: "fire4/squeeze1x1" top: "fire4/expand3x3" convolution_param { num_output: 128 pad: 1 kernel_size: 3 } } layer { name: "fire4/relu_expand3x3" type: "ReLU" bottom: "fire4/expand3x3" top: "fire4/expand3x3" } layer { name: "fire4/concat" type: "Concat" bottom: "fire4/expand1x1" bottom: "fire4/expand3x3" top: "fire4/concat" } layer { name: "fire5/squeeze1x1" type: "Convolution" bottom: "fire4/concat" top: "fire5/squeeze1x1" convolution_param { num_output: 32 kernel_size: 1 } } layer { name: "fire5/relu_squeeze1x1" type: "ReLU" bottom: "fire5/squeeze1x1" top: "fire5/squeeze1x1" } layer { name: "fire5/expand1x1" type: "Convolution" bottom: "fire5/squeeze1x1" top: "fire5/expand1x1" convolution_param { num_output: 128 kernel_size: 1 } } layer { name: "fire5/relu_expand1x1" type: "ReLU" bottom: "fire5/expand1x1" top: "fire5/expand1x1" } layer { name: "fire5/expand3x3" type: "Convolution" bottom: "fire5/squeeze1x1" top: "fire5/expand3x3" convolution_param { num_output: 128 pad: 1 kernel_size: 3 } } layer { name: "fire5/relu_expand3x3" type: "ReLU" bottom: "fire5/expand3x3" top: "fire5/expand3x3" } layer { name: "fire5/concat" type: "Concat" bottom: "fire5/expand1x1" bottom: "fire5/expand3x3" top: "fire5/concat" } layer { name: "pool5" type: "Pooling" bottom: "fire5/concat" top: "pool5" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "fire6/squeeze1x1" type: "Convolution" bottom: "pool5" top: "fire6/squeeze1x1" convolution_param { num_output: 48 kernel_size: 1 } } layer { name: "fire6/relu_squeeze1x1" type: "ReLU" bottom: "fire6/squeeze1x1" top: "fire6/squeeze1x1" } layer { name: "fire6/expand1x1" type: "Convolution" bottom: "fire6/squeeze1x1" top: "fire6/expand1x1" convolution_param { num_output: 192 kernel_size: 1 } } layer { name: "fire6/relu_expand1x1" type: "ReLU" bottom: "fire6/expand1x1" top: "fire6/expand1x1" } layer { name: "fire6/expand3x3" type: "Convolution" bottom: "fire6/squeeze1x1" top: "fire6/expand3x3" convolution_param { num_output: 192 pad: 1 kernel_size: 3 } } layer { name: "fire6/relu_expand3x3" type: "ReLU" bottom: "fire6/expand3x3" top: "fire6/expand3x3" } layer { name: "fire6/concat" type: "Concat" bottom: "fire6/expand1x1" bottom: "fire6/expand3x3" top: "fire6/concat" } layer { name: "fire7/squeeze1x1" type: "Convolution" bottom: "fire6/concat" top: "fire7/squeeze1x1" convolution_param { num_output: 48 kernel_size: 1 } } layer { name: "fire7/relu_squeeze1x1" type: "ReLU" bottom: "fire7/squeeze1x1" top: "fire7/squeeze1x1" } layer { name: "fire7/expand1x1" type: "Convolution" bottom: "fire7/squeeze1x1" top: "fire7/expand1x1" convolution_param { num_output: 192 kernel_size: 1 } } layer { name: "fire7/relu_expand1x1" type: "ReLU" bottom: "fire7/expand1x1" top: "fire7/expand1x1" } layer { name: "fire7/expand3x3" type: "Convolution" bottom: "fire7/squeeze1x1" top: "fire7/expand3x3" convolution_param { num_output: 192 pad: 1 kernel_size: 3 } } layer { name: "fire7/relu_expand3x3" type: "ReLU" bottom: "fire7/expand3x3" top: "fire7/expand3x3" } layer { name: "fire7/concat" type: "Concat" bottom: "fire7/expand1x1" bottom: "fire7/expand3x3" top: "fire7/concat" } layer { name: "fire8/squeeze1x1" type: "Convolution" bottom: "fire7/concat" top: "fire8/squeeze1x1" convolution_param { num_output: 64 kernel_size: 1 } } layer { name: "fire8/relu_squeeze1x1" type: "ReLU" bottom: "fire8/squeeze1x1" top: "fire8/squeeze1x1" } layer { name: "fire8/expand1x1" type: "Convolution" bottom: "fire8/squeeze1x1" top: "fire8/expand1x1" convolution_param { num_output: 256 kernel_size: 1 } } layer { name: "fire8/relu_expand1x1" type: "ReLU" bottom: "fire8/expand1x1" top: "fire8/expand1x1" } layer { name: "fire8/expand3x3" type: "Convolution" bottom: "fire8/squeeze1x1" top: "fire8/expand3x3" convolution_param { num_output: 256 pad: 1 kernel_size: 3 } } layer { name: "fire8/relu_expand3x3" type: "ReLU" bottom: "fire8/expand3x3" top: "fire8/expand3x3" } layer { name: "fire8/concat" type: "Concat" bottom: "fire8/expand1x1" bottom: "fire8/expand3x3" top: "fire8/concat" } layer { name: "fire9/squeeze1x1" type: "Convolution" bottom: "fire8/concat" top: "fire9/squeeze1x1" convolution_param { num_output: 64 kernel_size: 1 } } layer { name: "fire9/relu_squeeze1x1" type: "ReLU" bottom: "fire9/squeeze1x1" top: "fire9/squeeze1x1" } layer { name: "fire9/expand1x1" type: "Convolution" bottom: "fire9/squeeze1x1" top: "fire9/expand1x1" convolution_param { num_output: 256 kernel_size: 1 } } layer { name: "fire9/relu_expand1x1" type: "ReLU" bottom: "fire9/expand1x1" top: "fire9/expand1x1" } layer { name: "fire9/expand3x3" type: "Convolution" bottom: "fire9/squeeze1x1" top: "fire9/expand3x3" convolution_param { num_output: 256 pad: 1 kernel_size: 3 } } layer { name: "fire9/relu_expand3x3" type: "ReLU" bottom: "fire9/expand3x3" top: "fire9/expand3x3" } layer { name: "fire9/concat" type: "Concat" bottom: "fire9/expand1x1" bottom: "fire9/expand3x3" top: "fire9/concat" } #layer { # name: "drop9" # type: "Dropout" # bottom: "fire9/concat" # top: "fire9/concat" # dropout_param { # dropout_ratio: 0.5 # } #} layer { name: "conv10" type: "Convolution" bottom: "fire9/concat" top: "conv10" convolution_param { num_output: 512 kernel_size: 1 } } layer { name: "relu_conv10" type: "ReLU" bottom: "conv10" top: "conv10" } layer { name: "pool10" type: "Pooling" bottom: "conv10" top: "pool10" pooling_param { kernel_size: 13 stride: 1 pool: AVE } } #################################### layer { bottom: "pool10" top: "fc7" name: "fc7" type: "InnerProduct" inner_product_param { num_output: 512 } } layer { bottom: "fc7" top: "fc7" name: "bn_fc7" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc7" top: "fc7" name: "scale_fc7" type: "Scale" scale_param { bias_term: true } } layer { bottom: "fc7" top: "fc7" name: "fc7_relu" type: "ReLU" } ######################## BalancingElement ########################### layer { name: "fc8_BalancingElement" type: "InnerProduct" bottom: "fc7" top: "fc8_BalancingElement" inner_product_param { num_output: 256 } } layer { bottom: "fc8_BalancingElement" top: "fc8_BalancingElement" name: "bn_fc8_BalancingElement" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_BalancingElement" top: "fc8_BalancingElement" name: "scale_fc8_BalancingElement" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_BalancingElement" type: "ReLU" bottom: "fc8_BalancingElement" top: "fc8_BalancingElement" } layer { name: "fc9_BalancingElement" type: "InnerProduct" bottom: "fc8_BalancingElement" top: "fc9_BalancingElement" inner_product_param { num_output: 1 } } layer { name: "fc9_BalancingElementInner" type: "InnerProduct" bottom: "fc9_BalancingElement" top: "fc9_BalancingElementInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## ColorHarmony ########################### layer { name: "fc8_ColorHarmony" type: "InnerProduct" bottom: "fc7" top: "fc8_ColorHarmony" inner_product_param { num_output: 256 } } layer { bottom: "fc8_ColorHarmony" top: "fc8_ColorHarmony" name: "bn_fc8_ColorHarmony" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_ColorHarmony" top: "fc8_ColorHarmony" name: "scale_fc8_ColorHarmony" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_ColorHarmony" type: "ReLU" bottom: "fc8_ColorHarmony" top: "fc8_ColorHarmony" } layer { name: "fc9_ColorHarmony" type: "InnerProduct" bottom: "fc8_ColorHarmony" top: "fc9_ColorHarmony" inner_product_param { num_output: 1 } } layer { name: "fc9_ColorHarmonyInner" type: "InnerProduct" bottom: "fc9_ColorHarmony" top: "fc9_ColorHarmonyInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## Content ########################### layer { name: "fc8_Content" type: "InnerProduct" bottom: "fc7" top: "fc8_Content" inner_product_param { num_output: 256 } } layer { bottom: "fc8_Content" top: "fc8_Content" name: "bn_fc8_Content" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_Content" top: "fc8_Content" name: "scale_fc8_Content" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_Content" type: "ReLU" bottom: "fc8_Content" top: "fc8_Content" } layer { name: "fc9_Content" type: "InnerProduct" bottom: "fc8_Content" top: "fc9_Content" inner_product_param { num_output: 1 } } layer { name: "fc9_ContentInner" type: "InnerProduct" bottom: "fc9_Content" top: "fc9_ContentInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## DoF ########################### layer { name: "fc8_DoF" type: "InnerProduct" bottom: "fc7" top: "fc8_DoF" inner_product_param { num_output: 256 } } layer { bottom: "fc8_DoF" top: "fc8_DoF" name: "bn_fc8_DoF" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_DoF" top: "fc8_DoF" name: "scale_fc8_DoF" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_DoF" type: "ReLU" bottom: "fc8_DoF" top: "fc8_DoF" } layer { name: "fc9_DoF" type: "InnerProduct" bottom: "fc8_DoF" top: "fc9_DoF" inner_product_param { num_output: 1 } } layer { name: "fc9_DoFInner" type: "InnerProduct" bottom: "fc9_DoF" top: "fc9_DoFInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## Light ########################### layer { name: "fc8_Light" type: "InnerProduct" bottom: "fc7" top: "fc8_Light" inner_product_param { num_output: 256 } } layer { bottom: "fc8_Light" top: "fc8_Light" name: "bn_fc8_Light" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_Light" top: "fc8_Light" name: "scale_fc8_Light" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_Light" type: "ReLU" bottom: "fc8_Light" top: "fc8_Light" } layer { name: "fc9_Light" type: "InnerProduct" bottom: "fc8_Light" top: "fc9_Light" inner_product_param { num_output: 1 } } layer { name: "fc9_LightInner" type: "InnerProduct" bottom: "fc9_Light" top: "fc9_LightInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## MotionBlur ########################### layer { name: "fc8_MotionBlur" type: "InnerProduct" bottom: "fc7" top: "fc8_MotionBlur" inner_product_param { num_output: 256 } } layer { bottom: "fc8_MotionBlur" top: "fc8_MotionBlur" name: "bn_fc8_MotionBlur" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_MotionBlur" top: "fc8_MotionBlur" name: "scale_fc8_MotionBlur" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_MotionBlur" type: "ReLU" bottom: "fc8_MotionBlur" top: "fc8_MotionBlur" } layer { name: "fc9_MotionBlur" type: "InnerProduct" bottom: "fc8_MotionBlur" top: "fc9_MotionBlur" inner_product_param { num_output: 1 } } layer { name: "fc9_MotionBlurInner" type: "InnerProduct" bottom: "fc9_MotionBlur" top: "fc9_MotionBlurInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## Object ########################### layer { name: "fc8_Object" type: "InnerProduct" bottom: "fc7" top: "fc8_Object" inner_product_param { num_output: 256 } } layer { bottom: "fc8_Object" top: "fc8_Object" name: "bn_fc8_Object" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_Object" top: "fc8_Object" name: "scale_fc8_Object" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_Object" type: "ReLU" bottom: "fc8_Object" top: "fc8_Object" } layer { name: "fc9_Object" type: "InnerProduct" bottom: "fc8_Object" top: "fc9_Object" inner_product_param { num_output: 1 } } layer { name: "fc9_ObjectInner" type: "InnerProduct" bottom: "fc9_Object" top: "fc9_ObjectInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## Repetition ########################### layer { name: "fc8_Repetition" type: "InnerProduct" bottom: "fc7" top: "fc8_Repetition" inner_product_param { num_output: 256 } } layer { bottom: "fc8_Repetition" top: "fc8_Repetition" name: "bn_fc8_Repetition" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_Repetition" top: "fc8_Repetition" name: "scale_fc8_Repetition" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_Repetition" type: "ReLU" bottom: "fc8_Repetition" top: "fc8_Repetition" } layer { name: "fc9_Repetition" type: "InnerProduct" bottom: "fc8_Repetition" top: "fc9_Repetition" inner_product_param { num_output: 1 } } layer { name: "fc9_RepetitionInner" type: "InnerProduct" bottom: "fc9_Repetition" top: "fc9_RepetitionInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## RuleOfThird ########################### layer { name: "fc8_RuleOfThird" type: "InnerProduct" bottom: "fc7" top: "fc8_RuleOfThird" inner_product_param { num_output: 256 } } layer { bottom: "fc8_RuleOfThird" top: "fc8_RuleOfThird" name: "bn_fc8_RuleOfThird" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_RuleOfThird" top: "fc8_RuleOfThird" name: "scale_fc8_RuleOfThird" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_RuleOfThird" type: "ReLU" bottom: "fc8_RuleOfThird" top: "fc8_RuleOfThird" } layer { name: "fc9_RuleOfThird" type: "InnerProduct" bottom: "fc8_RuleOfThird" top: "fc9_RuleOfThird" inner_product_param { num_output: 1 } } layer { name: "fc9_RuleOfThirdInner" type: "InnerProduct" bottom: "fc9_RuleOfThird" top: "fc9_RuleOfThirdInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## Symmetry ########################### layer { name: "fc8_Symmetry" type: "InnerProduct" bottom: "fc7" top: "fc8_Symmetry" inner_product_param { num_output: 256 } } layer { bottom: "fc8_Symmetry" top: "fc8_Symmetry" name: "bn_fc8_Symmetry" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_Symmetry" top: "fc8_Symmetry" name: "scale_fc8_Symmetry" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_Symmetry" type: "ReLU" bottom: "fc8_Symmetry" top: "fc8_Symmetry" } layer { name: "fc9_Symmetry" type: "InnerProduct" bottom: "fc8_Symmetry" top: "fc9_Symmetry" inner_product_param { num_output: 1 } } layer { name: "fc9_SymmetryInner" type: "InnerProduct" bottom: "fc9_Symmetry" top: "fc9_SymmetryInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## VividColor ########################### layer { name: "fc8_VividColor" type: "InnerProduct" bottom: "fc7" top: "fc8_VividColor" inner_product_param { num_output: 256 } } layer { bottom: "fc8_VividColor" top: "fc8_VividColor" name: "bn_fc8_VividColor" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc8_VividColor" top: "fc8_VividColor" name: "scale_fc8_VividColor" type: "Scale" scale_param { bias_term: true } } layer { name: "relu8_VividColor" type: "ReLU" bottom: "fc8_VividColor" top: "fc8_VividColor" } layer { name: "fc9_VividColor" type: "InnerProduct" bottom: "fc8_VividColor" top: "fc9_VividColor" inner_product_param { num_output: 1 } } layer { name: "fc9_VividColorInner" type: "InnerProduct" bottom: "fc9_VividColor" top: "fc9_VividColorInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1 } } } ######################## Overall Score ########################### layer { name: "Concat9" bottom: "fc7" bottom: "fc8_BalancingElement" bottom: "fc8_ColorHarmony" bottom: "fc8_Content" bottom: "fc8_DoF" bottom: "fc8_Light" bottom: "fc8_MotionBlur" bottom: "fc8_Object" bottom: "fc8_Repetition" bottom: "fc8_RuleOfThird" bottom: "fc8_Symmetry" bottom: "fc8_VividColor" top: "Concat9" type: "Concat" concat_param { axis: 1 } } layer { name: "fc10_merge" type: "InnerProduct" bottom: "Concat9" top: "fc10_merge" inner_product_param { num_output: 128 } } layer { bottom: "fc10_merge" top: "fc10_merge" name: "bn_fc10_merge" type: "BatchNorm" batch_norm_param { use_global_stats: true } } layer { bottom: "fc10_merge" top: "fc10_merge" name: "scale_fc10_merge" type: "Scale" scale_param { bias_term: true } } layer { name: "relu_fc10_merge" type: "ReLU" bottom: "fc10_merge" top: "fc10_merge" } layer { name: "fc11_score" type: "InnerProduct" bottom: "fc10_merge" top: "fc11_score" inner_product_param { num_output: 1 } } layer { name: "fc11_scoreInner" type: "InnerProduct" bottom: "fc11_score" top: "fc11_scoreInner" inner_product_param { num_output: 16 weight_filler{ type: "constant" value: 1.0 } } } ######################## Final Layer ########################### layer { name: "Concat12" bottom: "fc11_scoreInner" bottom: "fc9_BalancingElementInner" bottom: "fc9_ColorHarmonyInner" bottom: "fc9_ContentInner" bottom: "fc9_DoFInner" bottom: "fc9_LightInner" bottom: "fc9_MotionBlurInner" bottom: "fc9_ObjectInner" bottom: "fc9_RepetitionInner" bottom: "fc9_RuleOfThirdInner" bottom: "fc9_SymmetryInner" bottom: "fc9_VividColorInner" top: "Concat12" type: "Concat" concat_param { axis: 1 } }