MCPcopy Index your code
hub / github.com/OpenGVLab/InternVL / __call__

Method __call__

classification/utils.py:358–378  ·  view source on GitHub ↗
(self,
                 loss,
                 optimizer,
                 clip_grad=None,
                 parameters=None,
                 create_graph=False,
                 update_grad=True)

Source from the content-addressed store, hash-verified

356 self._scaler = torch.cuda.amp.GradScaler()
357
358 def __call__(self,
359 loss,
360 optimizer,
361 clip_grad=None,
362 parameters=None,
363 create_graph=False,
364 update_grad=True):
365 self._scaler.scale(loss).backward(create_graph=create_graph)
366 if update_grad:
367 if clip_grad is not None:
368 assert parameters is not None
369 self._scaler.unscale_(optimizer) # unscale the gradients of optimizer's assigned params in-place
370 norm = torch.nn.utils.clip_grad_norm_(parameters, clip_grad)
371 else:
372 self._scaler.unscale_(optimizer)
373 norm = get_grad_norm(parameters)
374 self._scaler.step(optimizer)
375 self._scaler.update()
376 else:
377 norm = None
378 return norm
379
380 def state_dict(self):
381 return self._scaler.state_dict()

Callers

nothing calls this directly

Calls 3

get_grad_normFunction · 0.85
updateMethod · 0.80
backwardMethod · 0.45

Tested by

no test coverage detected