NCTCMumbai's picture
Upload 2583 files
97b6013 verified
syntax = "proto2";
package lstm_object_detection.protos;
import "object_detection/protos/pipeline.proto";
import "lstm_object_detection/protos/quant_overrides.proto";
extend object_detection.protos.TrainEvalPipelineConfig {
optional LstmModel lstm_model = 205743444;
optional QuantOverrides quant_overrides = 246059837;
}
// Message for extra fields needed for configuring LSTM model.
message LstmModel {
// Unroll length for training LSTMs.
optional int32 train_unroll_length = 1;
// Unroll length for evaluating LSTMs.
optional int32 eval_unroll_length = 2;
// Depth of the lstm feature map.
optional int32 lstm_state_depth = 3 [default = 256];
// Depth multipliers for multiple feature extractors. Used for interleaved
// or ensemble model.
repeated float depth_multipliers = 4;
// Specifies how models are interleaved when multiple feature extractors are
// used during training. Must be in ['RANDOM', 'RANDOM_SKIP_SMALL'].
optional string train_interleave_method = 5 [default = 'RANDOM'];
// Specifies how models are interleaved when multiple feature extractors are
// used during training. Must be in ['RANDOM', 'RANDOM_SKIP', 'SKIPK'].
optional string eval_interleave_method = 6 [default = 'SKIP9'];
// The stride of the lstm state.
optional int32 lstm_state_stride = 7 [default = 32];
// Whether to flattern LSTM state and output. Note that this is typically
// intended only to be modified internally by export_tfmini_lstd_graph_lib
// to support flatten state for tfmini/tflite. Do not set this field in
// the pipeline config file unless necessary.
optional bool flatten_state = 8 [default = false];
// Whether to apply bottleneck layer before going into LSTM gates. This
// allows multiple feature extractors to use separate bottleneck layers
// instead of sharing the same one so that different base model output
// feature dimensions are not forced to be the same.
// For example:
// Model 1 outputs feature map f_1 of depth d_1.
// Model 2 outputs feature map f_2 of depth d_2.
// Pre-bottlenecking allows lstm input to be either:
// conv(concat([f_1, h])) or conv(concat([f_2, h])).
optional bool pre_bottleneck = 9 [default = false];
// Normalize LSTM state, default false.
optional bool scale_state = 10 [default = false];
// Clip LSTM state at [0, 6], default true.
optional bool clip_state = 11 [default = true];
// If the model is in quantized training. This field does NOT need to be set
// manually. Instead, it will be overridden by configs in graph_rewriter.
optional bool is_quantized = 12 [default = false];
// Downsample input image when using the smaller network in interleaved
// models, default false.
optional bool low_res = 13 [default = false];
}