-
Notifications
You must be signed in to change notification settings - Fork 21
/
ssd_resnet101_v1_fpn_marine_debris.config
207 lines (204 loc) · 5.34 KB
/
ssd_resnet101_v1_fpn_marine_debris.config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
# SSD with Resnet 101 v1 FPN feature extractor, shared box predictor and focal
# loss (a.k.a Retinanet).
# See Lin et al, https://arxiv.org/abs/1708.02002
# Trained on open image dataset v4, initialized from scratch.
# This config is TPU compatible
model {
ssd {
inplace_batchnorm_update: true
freeze_batchnorm: false
num_classes: 1
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
use_matmul_gather: true
}
}
similarity_calculator {
iou_similarity {
}
}
encode_background_as_zeros: true
anchor_generator {
multiscale_anchor_generator {
min_level: 3
max_level: 7
anchor_scale: 4.0
aspect_ratios: [1.0, 2.0, 0.5]
scales_per_octave: 2
}
}
image_resizer {
fixed_shape_resizer {
height: 256
width: 256
}
}
box_predictor {
weight_shared_convolutional_box_predictor {
depth: 256
class_prediction_bias_init: -4.6
conv_hyperparams {
activation: RELU_6,
regularizer {
l2_regularizer {
weight: 0.0001
}
}
initializer {
random_normal_initializer {
stddev: 0.01
mean: 0.0
}
}
batch_norm {
scale: true,
decay: 0.997,
epsilon: 0.001,
}
}
num_layers_before_predictor: 2
kernel_size: 3
}
}
feature_extractor {
type: 'ssd_resnet101_v1_fpn'
fpn {
min_level: 3
max_level: 7
}
min_depth: 16
depth_multiplier: 1.0
conv_hyperparams {
activation: RELU_6,
regularizer {
l2_regularizer {
weight: 0.0001
}
}
initializer {
truncated_normal_initializer {
stddev: 0.03
mean: 0.0
}
}
batch_norm {
scale: true,
decay: 0.997,
epsilon: 0.001,
}
}
override_base_feature_extractor_hyperparams: true
}
loss {
classification_loss {
weighted_sigmoid_focal {
alpha: 0.25
gamma: 2.0
}
}
localization_loss {
weighted_smooth_l1 {
}
}
classification_weight: 1.0
localization_weight: 1.0
}
normalize_loss_by_num_matches: true
normalize_loc_loss_by_codesize: true
post_processing {
batch_non_max_suppression {
score_threshold: 0.1
iou_threshold: 0.5
max_detections_per_class: 10
max_total_detections: 50
use_static_shapes: true
}
score_converter: SIGMOID
}
}
}
train_config {
batch_size: 12 # 14 too big for p3.2xlarge w/ 256 depth, pyr 3-7; 12 works w/ depth 128
merge_multiple_label_boxes: true
data_augmentation_options {
random_horizontal_flip {
}
}
data_augmentation_options {
random_vertical_flip {
}
}
data_augmentation_options {
random_adjust_brightness {
}
}
data_augmentation_options {
random_adjust_contrast {
}
}
data_augmentation_options {
random_crop_image {
min_area: 0.75
max_area: 1.0
}
}
optimizer {
rms_prop_optimizer {
learning_rate {
cosine_decay_learning_rate {
learning_rate_base: 0.0001
total_steps: 50000
warmup_learning_rate: 0.0000001
warmup_steps: 1000
}
}
momentum_optimizer_value: 0.9}
# use_moving_average: false
}
fine_tune_checkpoint: "/home/ubuntu/tensorflow_od_api/models/research/object_detection/marine_litter_training/ssd_resnet101_v1_fpn_shared_box_predictor_oid_512x512_sync_2019_01_20/model.ckpt"
from_detection_checkpoint: true # From object detection checkpoint
load_all_detection_checkpoint_vars: true
num_steps: 50000 # Match to momentum_optimizer above
startup_delay_steps: 0.0
unpad_groundtruth_tensors: false
sync_replicas: true
}
train_input_reader {
label_map_path: "/home/ubuntu/tensorflow_od_api/models/research/object_detection/marine_litter_training/marine_debris.pbtxt"
shuffle_buffer_size: 8192
tf_record_input_reader {
input_path: "/home/ubuntu/tensorflow_od_api/models/research/object_detection/marine_litter_training/data/tf_records/*train.records"
}
}
eval_config {
num_examples: 100 # Set to size of eval TF Serving; deprecated
#max_evals: 1 # Max out at X evalutations to save time; deprecated
eval_interval_secs: 300 # Default 300
max_num_boxes_to_visualize: 50
visualize_groundtruth_boxes: true
num_visualizations: 12
use_moving_averages: false
include_metrics_per_category: true
metrics_set: "weighted_pascal_voc_detection_metrics"
}
eval_input_reader {
label_map_path: "/home/ubuntu/tensorflow_od_api/models/research/object_detection/marine_litter_training/marine_debris.pbtxt"
shuffle: true
num_readers: 4
tf_record_input_reader {
input_path: "/home/ubuntu/tensorflow_od_api/models/research/object_detection/marine_litter_training/data/tf_records/*val.records"
}
}