MCPcopy Index your code
hub / github.com/Closed11/Unsupervised-Image-Classification / train

Function train

eval_linear.py:175–219  ·  view source on GitHub ↗
(train_loader, model, criterion, optimizer, epoch)

Source from the content-addressed store, hash-verified

173 return res
174
175def train(train_loader, model, criterion, optimizer, epoch):
176 batch_time = AverageMeter()
177 data_time = AverageMeter()
178 losses = AverageMeter()
179 top1 = AverageMeter()
180 top5 = AverageMeter()
181
182 # freeze also batch norm layers
183 model.eval()
184
185 end = time.time()
186 for i, (input, target) in enumerate(train_loader):
187 # measure data loading time
188 data_time.update(time.time() - end)
189
190 # compute output
191 input_cu, target_cu = input.cuda(), target.cuda()
192 output = model(input_cu)
193 loss = criterion(output, target_cu)
194 # measure accuracy and record loss
195 prec1, prec5 = accuracy(output.data, target_cu, topk=(1, 5))
196 losses.update(loss.item(), input.size(0))
197 top1.update(prec1.item(), input.size(0))
198 top5.update(prec5.item(), input.size(0))
199
200 # compute gradient and do SGD step
201 optimizer.zero_grad()
202 loss.backward()
203 optimizer.step()
204
205 # measure elapsed time
206 batch_time.update(time.time() - end)
207 end = time.time()
208
209 if args.verbose and i % 100 == 0:
210 logger.info('Epoch: [{0}][{1}/{2}]\t'
211 'Time {batch_time.val:.3f} ({batch_time.avg:.3f})\t'
212 'Data {data_time.val:.3f} ({data_time.avg:.3f})\t'
213 'lr {3}\t'
214 'Loss {loss.val:.4f} ({loss.avg:.4f})\t'
215 'Prec@1 {top1.val:.3f} ({top1.avg:.3f})\t'
216 'Prec@5 {top5.val:.3f} ({top5.avg:.3f})'
217 .format(epoch, i, len(train_loader), optimizer.param_groups[0]['lr'], \
218 batch_time=batch_time, data_time=data_time, loss=losses, \
219 top1=top1, top5=top5))
220
221
222def validate(val_loader, model, criterion):

Callers 1

mainFunction · 0.70

Calls 4

updateMethod · 0.95
AverageMeterClass · 0.90
accuracyFunction · 0.85
formatMethod · 0.80

Tested by

no test coverage detected