Created
January 27, 2019 05:11
-
-
Save rsandler00/855f6ec134d0a244af0ad2c5eed59e70 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SSDLite with Mobilenet v2 configuration for SANATA dataset. | |
# Users should configure the fine_tune_checkpoint field in the train config as | |
# well as the label_map_path and input_path fields in the train_input_reader and | |
# eval_input_reader. Search for "PATH_TO_BE_CONFIGURED" to find the fields that | |
# should be configured. | |
model { | |
ssd { | |
# PATH_TO_BE_CONFIGURED | |
num_classes: 3 | |
box_coder { | |
faster_rcnn_box_coder { | |
y_scale: 10.0 | |
x_scale: 10.0 | |
height_scale: 5.0 | |
width_scale: 5.0 | |
} | |
} | |
matcher { | |
argmax_matcher { | |
matched_threshold: 0.5 | |
unmatched_threshold: 0.5 | |
ignore_thresholds: false | |
negatives_lower_than_unmatched: true | |
force_match_for_each_row: true | |
} | |
} | |
similarity_calculator { | |
iou_similarity { | |
} | |
} | |
anchor_generator { | |
ssd_anchor_generator { | |
num_layers: 6 | |
min_scale: 0.05 | |
max_scale: 0.95 | |
aspect_ratios: 1.0 | |
aspect_ratios: 2.0 | |
aspect_ratios: 0.5 | |
aspect_ratios: 3.0 | |
aspect_ratios: 0.3333 | |
} | |
} | |
image_resizer { | |
fixed_shape_resizer { | |
height: 300 | |
width: 300 | |
} | |
} | |
box_predictor { | |
convolutional_box_predictor { | |
min_depth: 0 | |
max_depth: 0 | |
num_layers_before_predictor: 0 | |
use_dropout: false | |
dropout_keep_probability: 0.8 | |
kernel_size: 3 | |
use_depthwise: true | |
box_code_size: 4 | |
apply_sigmoid_to_scores: false | |
conv_hyperparams { | |
activation: RELU_6, | |
regularizer { | |
l2_regularizer { | |
weight: 0.00004 | |
} | |
} | |
initializer { | |
truncated_normal_initializer { | |
stddev: 0.03 | |
mean: 0.0 | |
} | |
} | |
batch_norm { | |
train: true, | |
scale: true, | |
center: true, | |
decay: 0.9997, | |
epsilon: 0.001, | |
} | |
} | |
} | |
} | |
feature_extractor { | |
type: 'ssd_mobilenet_v2' | |
min_depth: 16 | |
depth_multiplier: 1.0 | |
use_depthwise: true | |
conv_hyperparams { | |
activation: RELU_6, | |
regularizer { | |
l2_regularizer { | |
weight: 0.00004 | |
} | |
} | |
initializer { | |
truncated_normal_initializer { | |
stddev: 0.03 | |
mean: 0.0 | |
} | |
} | |
batch_norm { | |
train: true, | |
scale: true, | |
center: true, | |
decay: 0.9997, | |
epsilon: 0.001, | |
} | |
} | |
} | |
loss { | |
classification_loss { | |
weighted_sigmoid { | |
} | |
} | |
localization_loss { | |
weighted_smooth_l1 { | |
} | |
} | |
hard_example_miner { | |
num_hard_examples: 3000 | |
iou_threshold: 0.99 | |
loss_type: CLASSIFICATION | |
max_negatives_per_positive: 3 | |
min_negatives_per_image: 3 | |
} | |
classification_weight: 1.0 | |
localization_weight: 1.0 | |
} | |
normalize_loss_by_num_matches: true | |
post_processing { | |
batch_non_max_suppression { | |
score_threshold: 1e-8 | |
iou_threshold: 0.6 | |
max_detections_per_class: 100 | |
max_total_detections: 100 | |
} | |
score_converter: SIGMOID | |
} | |
} | |
} | |
train_config: { | |
batch_size: 24 | |
optimizer { | |
rms_prop_optimizer: { | |
learning_rate: { | |
exponential_decay_learning_rate { | |
# In Huang et al., 2017 the params (for MobileNetv1) were: | |
# initial_learning_rate=0.004, decay_steps=800k, decay_factor=0.95 | |
# JKJeung used: | |
# initial_learning_rate=0.004, decay_steps=1000, decay_factor=0.8 | |
initial_learning_rate: 0.006 | |
decay_steps: 10000 | |
decay_factor: 0.9 | |
} | |
} | |
momentum_optimizer_value: 0.9 | |
decay: 0.9 | |
epsilon: 1.0 | |
} | |
} | |
# PATH_TO_BE_CONFIGURED | |
# Original is "published_model_checkpoints/ssdlite_mobilenet_v2_coco_2018_05_09/model.ckpt" | |
fine_tune_checkpoint: "published_model_checkpoints/ssdlite_mobilenet_v2_coco_2018_05_09/model.ckpt" | |
fine_tune_checkpoint_type: "detection" | |
# Note: The below line limits the training process to 200K steps, which we | |
# empirically found to be sufficient enough to train the pets dataset. This | |
# effectively bypasses the learning rate schedule (the learning rate will | |
# never decay). Remove the below line to train indefinitely. | |
num_steps: 100000 | |
data_augmentation_options { | |
random_horizontal_flip { | |
} | |
random_image_scale { | |
max_scale_ratio : 1.5 | |
} | |
} | |
data_augmentation_options { | |
ssd_random_crop { | |
} | |
} | |
} | |
train_input_reader: { | |
tf_record_input_reader { | |
# PATH_TO_BE_CONFIGURED | |
input_path: "data/SANATA_train.tfrecord" | |
} | |
# PATH_TO_BE_CONFIGURED | |
label_map_path: "data/SANATA_label_map.pbtxt" | |
} | |
eval_config: { | |
num_examples: 100 | |
num_visualizations: 15 | |
# Note that eval conducted in max(eval_interval_secs, <new_checkpoint_saved>) | |
eval_interval_secs: 300 | |
# PATH_TO_BE_CONFIGURED | |
visualization_export_dir: "results/eval_results" | |
export_path: "results/eval_results" | |
# Note: The below line limits the evaluation process to 10 evaluations. | |
# Remove the below line to evaluate indefinitely. | |
max_evals: 10 | |
} | |
eval_input_reader: { | |
tf_record_input_reader { | |
# PATH_TO_BE_CONFIGURED | |
input_path: "data/SANATA_val.tfrecord" | |
} | |
# PATH_TO_BE_CONFIGURED | |
label_map_path: "data/SANATA_label_map.pbtxt" | |
shuffle: false | |
num_readers: 1 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment