fixing error in isnan test for optimizer_on_cpu & fp16
This commit is contained in:
@@ -688,11 +688,14 @@ def set_optimizer_params_grad(named_params_optimizer, named_params_model, test_n
|
|||||||
if name_opti != name_model:
|
if name_opti != name_model:
|
||||||
logger.error("name_opti != name_model: {} {}".format(name_opti, name_model))
|
logger.error("name_opti != name_model: {} {}".format(name_opti, name_model))
|
||||||
raise ValueError
|
raise ValueError
|
||||||
|
if param_model.grad is not None:
|
||||||
if test_nan and torch.isnan(param_model.grad).sum() > 0:
|
if test_nan and torch.isnan(param_model.grad).sum() > 0:
|
||||||
is_nan = True
|
is_nan = True
|
||||||
if param_opti.grad is None:
|
if param_opti.grad is None:
|
||||||
param_opti.grad = torch.nn.Parameter(param_opti.data.new().resize_(*param_opti.data.size()))
|
param_opti.grad = torch.nn.Parameter(param_opti.data.new().resize_(*param_opti.data.size()))
|
||||||
param_opti.grad.data.copy_(param_model.grad.data)
|
param_opti.grad.data.copy_(param_model.grad.data)
|
||||||
|
else:
|
||||||
|
param_opti.grad = None
|
||||||
return is_nan
|
return is_nan
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|||||||
Reference in New Issue
Block a user