| syntax = "proto2"; | |
| package object_detection.protos; | |
| // Configuration proto for the convolution op hyperparameters to use in the | |
| // object detection pipeline. | |
| message Hyperparams { | |
| // Operations affected by hyperparameters. | |
| enum Op { | |
| // Convolution, Separable Convolution, Convolution transpose. | |
| CONV = 1; | |
| // Fully connected | |
| FC = 2; | |
| } | |
| optional Op op = 1 [default = CONV]; | |
| // Regularizer for the weights of the convolution op. | |
| optional Regularizer regularizer = 2; | |
| // Initializer for the weights of the convolution op. | |
| optional Initializer initializer = 3; | |
| // Type of activation to apply after convolution. | |
| enum Activation { | |
| // Use None (no activation) | |
| NONE = 0; | |
| // Use tf.nn.relu | |
| RELU = 1; | |
| // Use tf.nn.relu6 | |
| RELU_6 = 2; | |
| // Use tf.nn.swish | |
| SWISH = 3; | |
| } | |
| optional Activation activation = 4 [default = RELU]; | |
| oneof normalizer_oneof { | |
| // Note that if nothing below is selected, then no normalization is applied | |
| // BatchNorm hyperparameters. | |
| BatchNorm batch_norm = 5; | |
| // GroupNorm hyperparameters. This is only supported on a subset of models. | |
| // Note that the current implementation of group norm instantiated in | |
| // tf.contrib.group.layers.group_norm() only supports fixed_size_resizer | |
| // for image preprocessing. | |
| GroupNorm group_norm = 7; | |
| } | |
| // Whether depthwise convolutions should be regularized. If this parameter is | |
| // NOT set then the conv hyperparams will default to the parent scope. | |
| optional bool regularize_depthwise = 6 [default = false]; | |
| } | |
| // Proto with one-of field for regularizers. | |
| message Regularizer { | |
| oneof regularizer_oneof { | |
| L1Regularizer l1_regularizer = 1; | |
| L2Regularizer l2_regularizer = 2; | |
| } | |
| } | |
| // Configuration proto for L1 Regularizer. | |
| // See https://www.tensorflow.org/api_docs/python/tf/contrib/layers/l1_regularizer | |
| message L1Regularizer { | |
| optional float weight = 1 [default = 1.0]; | |
| } | |
| // Configuration proto for L2 Regularizer. | |
| // See https://www.tensorflow.org/api_docs/python/tf/contrib/layers/l2_regularizer | |
| message L2Regularizer { | |
| optional float weight = 1 [default = 1.0]; | |
| } | |
| // Proto with one-of field for initializers. | |
| message Initializer { | |
| oneof initializer_oneof { | |
| TruncatedNormalInitializer truncated_normal_initializer = 1; | |
| VarianceScalingInitializer variance_scaling_initializer = 2; | |
| RandomNormalInitializer random_normal_initializer = 3; | |
| } | |
| } | |
| // Configuration proto for truncated normal initializer. See | |
| // https://www.tensorflow.org/api_docs/python/tf/truncated_normal_initializer | |
| message TruncatedNormalInitializer { | |
| optional float mean = 1 [default = 0.0]; | |
| optional float stddev = 2 [default = 1.0]; | |
| } | |
| // Configuration proto for variance scaling initializer. See | |
| // https://www.tensorflow.org/api_docs/python/tf/contrib/layers/ | |
| // variance_scaling_initializer | |
| message VarianceScalingInitializer { | |
| optional float factor = 1 [default = 2.0]; | |
| optional bool uniform = 2 [default = false]; | |
| enum Mode { | |
| FAN_IN = 0; | |
| FAN_OUT = 1; | |
| FAN_AVG = 2; | |
| } | |
| optional Mode mode = 3 [default = FAN_IN]; | |
| } | |
| // Configuration proto for random normal initializer. See | |
| // https://www.tensorflow.org/api_docs/python/tf/random_normal_initializer | |
| message RandomNormalInitializer { | |
| optional float mean = 1 [default = 0.0]; | |
| optional float stddev = 2 [default = 1.0]; | |
| } | |
| // Configuration proto for batch norm to apply after convolution op. See | |
| // https://www.tensorflow.org/api_docs/python/tf/contrib/layers/batch_norm | |
| message BatchNorm { | |
| optional float decay = 1 [default = 0.999]; | |
| optional bool center = 2 [default = true]; | |
| optional bool scale = 3 [default = false]; | |
| optional float epsilon = 4 [default = 0.001]; | |
| // Whether to train the batch norm variables. If this is set to false during | |
| // training, the current value of the batch_norm variables are used for | |
| // forward pass but they are never updated. | |
| optional bool train = 5 [default = true]; | |
| } | |
| // Configuration proto for group normalization to apply after convolution op. | |
| // https://arxiv.org/abs/1803.08494 | |
| message GroupNorm { | |
| } | |