Skip to content

Commit 58df33d

Browse files
shakandrewnv-kkudrynski
authored andcommitted
[SSD/PyT] Fixes
1 parent 248927e commit 58df33d

3 files changed

Lines changed: 9 additions & 10 deletions

File tree

PyTorch/Detection/SSD/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ def train(train_loop_func, logger, args):
169169
loss_func.cuda()
170170

171171
optimizer = torch.optim.SGD(tencent_trick(ssd300), lr=args.learning_rate,
172-
momentum=args.momentum, weight_decay=args.weight_decay)
172+
momentum=args.momentum, weight_decay=args.weight_decay)
173173
scheduler = MultiStepLR(optimizer=optimizer, milestones=args.multistep, gamma=0.1)
174174
if args.amp:
175175
ssd300, optimizer = amp.initialize(ssd300, optimizer, opt_level='O2')
@@ -198,8 +198,8 @@ def train(train_loop_func, logger, args):
198198
acc = evaluate(ssd300, val_dataloader, cocoGt, encoder, inv_map, args)
199199
if args.local_rank == 0:
200200
print('Model precision {} mAP'.format(acc))
201-
202201
return
202+
203203
mean, std = generate_mean_std(args)
204204

205205
for epoch in range(start_epoch, args.epochs):

PyTorch/Detection/SSD/src/logger.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ def log_summary(self):
9393
DLLogger.log((), self.summary)
9494

9595
def update_iter(self, epoch, iteration, loss):
96+
self.epoch = epoch
9697
self.train_iter = iteration
9798
self.train_loss_logger.update_iter(loss)
9899
if iteration % self.log_interval == 0:

PyTorch/Detection/SSD/src/train.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from apex import amp
2121

2222
def train_loop(model, loss_func, epoch, optim, train_dataloader, val_dataloader, encoder, iteration, logger, args, mean, std):
23-
# for nbatch, (img, _, img_size, bbox, label) in enumerate(train_dataloader):
2423
for nbatch, data in enumerate(train_dataloader):
2524
img = data[0][0][0]
2625
bbox = data[0][1][0]
@@ -82,8 +81,8 @@ def benchmark_train_loop(model, loss_func, epoch, optim, train_dataloader, val_d
8281
start_time = None
8382
# tensor for results
8483
result = torch.zeros((1,)).cuda()
85-
for i, data in enumerate(loop(train_dataloader)):
86-
if i >= args.benchmark_warmup:
84+
for nbatch, data in enumerate(loop(train_dataloader)):
85+
if nbatch >= args.benchmark_warmup:
8786
torch.cuda.synchronize()
8887
start_time = time.time()
8988

@@ -109,6 +108,7 @@ def benchmark_train_loop(model, loss_func, epoch, optim, train_dataloader, val_d
109108
continue
110109
bbox, label = C.box_encoder(N, bbox, bbox_offsets, label, encoder.dboxes.cuda(), 0.5)
111110

111+
# output is ([N*8732, 4], [N*8732], need [N, 8732, 4], [N, 8732] respectively
112112
M = bbox.shape[0] // N
113113
bbox = bbox.view(N, M, 4)
114114
label = label.view(N, M)
@@ -141,13 +141,12 @@ def benchmark_train_loop(model, loss_func, epoch, optim, train_dataloader, val_d
141141
optim.step()
142142
optim.zero_grad()
143143

144-
if i >= args.benchmark_warmup + args.benchmark_iterations:
144+
if nbatch >= args.benchmark_warmup + args.benchmark_iterations:
145145
break
146146

147-
if i >= args.benchmark_warmup:
147+
if nbatch >= args.benchmark_warmup:
148148
torch.cuda.synchronize()
149-
logger.update(args.batch_size, time.time() - start_time)
150-
149+
logger.update(args.batch_size*args.N_gpu, time.time() - start_time)
151150

152151
result.data[0] = logger.print_result()
153152
if args.N_gpu > 1:
@@ -156,7 +155,6 @@ def benchmark_train_loop(model, loss_func, epoch, optim, train_dataloader, val_d
156155
print('Training performance = {} FPS'.format(float(result.data[0])))
157156

158157

159-
160158
def loop(dataloader, reset=True):
161159
while True:
162160
for data in dataloader:

0 commit comments

Comments
 (0)