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]; }