model { faster_rcnn { num_classes: 2 image_resizer { keep_aspect_ratio_resizer { min_dimension: 800 max_dimension: 1333 pad_to_max_dimension: true } } feature_extractor { type: "faster_rcnn_inception_resnet_v2_keras" } first_stage_anchor_generator { grid_anchor_generator { height_stride: 16 width_stride: 16 scales: 0.25 scales: 0.5 scales: 1.0 scales: 2.0 aspect_ratios: 0.5 aspect_ratios: 1.0 aspect_ratios: 2.0 } } first_stage_box_predictor_conv_hyperparams { op: CONV regularizer { l2_regularizer { weight: 0.0 } } initializer { truncated_normal_initializer { stddev: 0.01 } } } first_stage_nms_score_threshold: 0.0 first_stage_nms_iou_threshold: 0.7 first_stage_max_proposals: 300 first_stage_localization_loss_weight: 2.0 first_stage_objectness_loss_weight: 1.0 initial_crop_size: 17 maxpool_kernel_size: 1 maxpool_stride: 1 second_stage_box_predictor { mask_rcnn_box_predictor { fc_hyperparams { op: FC regularizer { l2_regularizer { weight: 0.0 } } initializer { variance_scaling_initializer { factor: 1.0 uniform: true mode: FAN_AVG } } } use_dropout: false dropout_keep_probability: 1.0 } } second_stage_post_processing { batch_non_max_suppression { score_threshold: 0.0 iou_threshold: 0.6 max_detections_per_class: 100 max_total_detections: 200 } score_converter: SOFTMAX } second_stage_localization_loss_weight: 2.0 second_stage_classification_loss_weight: 1.0 } } train_config { batch_size: 2 optimizer { momentum_optimizer { learning_rate { cosine_decay_learning_rate { learning_rate_base: 0.04 total_steps: 1000 warmup_learning_rate: 0.0 warmup_steps: 250 } } momentum_optimizer_value: 0.9 } use_moving_average: false } gradient_clipping_by_norm: 10.0 fine_tune_checkpoint: "PATH_TO_BE_CONFIGURED" num_steps: 1000 max_number_of_boxes: 100 fine_tune_checkpoint_type: "detection" use_bfloat16: false fine_tune_checkpoint_version: V2 } train_input_reader { label_map_path: "PATH_TO_BE_CONFIGURED" shuffle: false tf_record_input_reader { input_path: "PATH_TO_BE_CONFIGURED" } num_parallel_batches: 1 } eval_config { metrics_set: "coco_detection_metrics" use_moving_averages: false batch_size: 1 } eval_input_reader { label_map_path: "PATH_TO_BE_CONFIGURED" shuffle: false num_epochs: 1 tf_record_input_reader { input_path: "PATH_TO_BE_CONFIGURED" } num_parallel_batches: 1 }