2020from apex import amp
2121
2222def 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-
160158def loop (dataloader , reset = True ):
161159 while True :
162160 for data in dataloader :
0 commit comments