I am using the object detection api in tensorflow. I noticed that practically all parameters pass through the config file. I could not find any documentation or tutorial on the options for these config files though.
I know that in the official git they provide a list of config files for their pretrained models which could be very helpful but it does not cover every case and of course does not provide any explanation if needed.
For example in train_config
section there are some data augmentation options which are quite self explanatory but the potential existence of other options is unclear:
data_augmentation_options {
random_horizontal_flip {
}
}
data_augmentation_options {
ssd_random_crop {
}
}
Is there a source I could refer to? For example in this tutorial two extra options (batch_queue_capacity
and prefetch_queue_capacity
) I did not know about appear. Where could I find a decent list of options I have? I know that it's model specific but some of them are universal and really helpful.
As mentioned in the configuration documentation, configuration files are just Protocol Buffers objects described in the .proto
files under research/object_detection/protos
. The top level object is a TrainEvalPipelineConfig
defined in pipeline.proto
, and different files describe each of the elements. For example, data_augmentation_options
are PreprocessingStep
objects, defined in preprocessor.proto
(which in turn can include a range of other possible objects for different preprocessing tasks). The meaning of each object and field may or may not be obvious or well-documented, but you can always refer to the source code to see exactly how each value is being used (for example, check preprocessor.py
to understand how data augmentation is done).