已合并
test: fix failed test cases in test_optim #35790
test: fix failed test cases in test_optim #35790
已合并
21xiu创建于 5月15日
共 2 个文件变更+1-183
@@ -477,155 +477,6 @@ class TestOptim(TestCase):
477 def _build_params_dict_single(self, weight, bias, **kwargs):477 def _build_params_dict_single(self, weight, bias, **kwargs):
478 return [dict(params=bias, **kwargs)]478 return [dict(params=bias, **kwargs)]
479 479 
480- @SupportedDevices(["Ascend910B"])
481- def test_sgd(self):
482- self._test_basic_cases(
483- lambda weight, bias, maximize, foreach: SGD(
484- [weight, bias], lr=1e-3, maximize=maximize, foreach=foreach
485- ),
486- constructor_accepts_maximize=True,
487- constructor_accepts_foreach=True,
488- )
489- self._test_basic_cases(
490- lambda weight, bias, maximize, foreach: SGD(
491- self._build_params_dict(weight, bias, lr=1e-2),
492- lr=1e-3,
493- maximize=maximize,
494- foreach=foreach,
495- ),
496- constructor_accepts_maximize=True,
497- constructor_accepts_foreach=True,
498- )
499- self._test_basic_cases(
500- lambda weight, bias, maximize, foreach: SGD(
501- self._build_params_dict_single(weight, bias, lr=1e-2),
502- lr=1e-3,
503- maximize=maximize,
504- foreach=foreach,
505- ),
506- constructor_accepts_maximize=True,
507- constructor_accepts_foreach=True,
508- )
509- self._test_basic_cases(
510- lambda weight, bias, maximize, foreach: SGD(
511- self._build_params_dict_single(weight, bias, lr=1e-2),
512- maximize=maximize,
513- foreach=foreach,
514- ),
515- constructor_accepts_maximize=True,
516- constructor_accepts_foreach=True,
517- )
518- self._test_basic_cases(
519- lambda weight, bias, maximize, foreach: SGD(
520- [weight, bias], lr=1e-3, maximize=maximize, foreach=foreach
521- ),
522- scheduler_constructors=[lambda opt: StepLR(opt, gamma=0.9, step_size=10)],
523- constructor_accepts_maximize=True,
524- constructor_accepts_foreach=True,
525- )
526- self._test_basic_cases(
527- lambda weight, bias, maximize, foreach: SGD(
528- [weight, bias], lr=1e-3, maximize=maximize, foreach=foreach
529- ),
530- scheduler_constructors=[
531- lambda opt: LinearLR(
532- opt, start_factor=0.4, end_factor=0.8, total_iters=4
533- )
534- ],
535- constructor_accepts_maximize=True,
536- constructor_accepts_foreach=True,
537- )
538- self._test_basic_cases(
539- lambda weight, bias, maximize, foreach: SGD(
540- [weight, bias], lr=1e-3, maximize=maximize, foreach=foreach
541- ),
542- scheduler_constructors=[lambda opt: ConstantLR(opt, factor=0.4, total_iters=4)],
543- constructor_accepts_maximize=True,
544- constructor_accepts_foreach=True,
545- )
546- self._test_basic_cases(
547- lambda weight, bias, maximize, foreach: SGD(
548- [weight, bias], lr=1e-3, maximize=maximize, foreach=foreach
549- ),
550- scheduler_constructors=[lambda opt: PolynomialLR(opt, power=0.9, total_iters=4)],
551- constructor_accepts_maximize=True,
552- constructor_accepts_foreach=True,
553- )
554- self._test_basic_cases(
555- lambda weight, bias, maximize, foreach: SGD(
556- [weight, bias], lr=1e-3, maximize=maximize, foreach=foreach
557- ),
558- scheduler_constructors=[
559- lambda opt: StepLR(opt, gamma=0.9, step_size=10),
560- lambda opt: LinearLR(
561- opt, start_factor=0.4, end_factor=0.6, total_iters=4
562- ),
563- ],
564- constructor_accepts_maximize=True,
565- constructor_accepts_foreach=True,
566- )
567- self._test_basic_cases(
568- lambda weight, bias, maximize, foreach: SGD(
569- [weight, bias], lr=1e-3, maximize=maximize, foreach=foreach
570- ),
571- [
572- lambda opt: StepLR(opt, gamma=0.9, step_size=10),
573- lambda opt: ReduceLROnPlateau(opt),
574- ],
575- constructor_accepts_maximize=True,
576- constructor_accepts_foreach=True,
577- )
578- self._test_basic_cases(
579- lambda weight, bias, maximize, foreach: SGD(
580- [weight, bias], lr=1e-3, maximize=maximize, foreach=foreach
581- ),
582- [
583- lambda opt: StepLR(opt, gamma=0.99, step_size=10),
584- lambda opt: ExponentialLR(opt, gamma=0.99),
585- lambda opt: ReduceLROnPlateau(opt),
586- ],
587- constructor_accepts_maximize=True,
588- constructor_accepts_foreach=True,
589- )
590- self._test_basic_cases(
591- lambda weight, bias, maximize, foreach: SGD(
592- [weight, bias],
593- lr=1e-3,
594- momentum=0.5,
595- maximize=maximize,
596- foreach=foreach,
597- ),
598- constructor_accepts_maximize=True,
599- constructor_accepts_foreach=True,
600- )
601- self._test_basic_cases(
602- lambda weight, bias, maximize, foreach: SGD(
603- [weight, bias],
604- lr=1e-3,
605- momentum=0.5,
606- weight_decay=1,
607- maximize=maximize,
608- foreach=foreach,
609- ),
610- constructor_accepts_maximize=True,
611- constructor_accepts_foreach=True,
612- )
613- self._test_basic_cases(
614- lambda weight, bias, maximize, foreach: SGD(
615- [weight, bias],
616- nesterov=True,
617- lr=1e-3,
618- momentum=0.5,
619- weight_decay=1,
620- maximize=maximize,
621- foreach=foreach,
622- ),
623- constructor_accepts_maximize=True,
624- constructor_accepts_foreach=True,
625- )
626- with self.assertRaisesRegex(ValueError, "Invalid momentum value: -0.5"):
627- SGD(None, lr=1e-2, momentum=-0.5)
628- 
629 def test_sgd_sparse(self):480 def test_sgd_sparse(self):
630 for foreach in (False, True):481 for foreach in (False, True):
631 self._test_rosenbrock_sparse(482 self._test_rosenbrock_sparse(
@@ -1285,37 +1136,6 @@ class TestOptim(TestCase):
1285 self._test_complex_2d(functools.partial(AdamW, foreach=foreach, weight_decay=0.2))1136 self._test_complex_2d(functools.partial(AdamW, foreach=foreach, weight_decay=0.2))
1286 self._test_complex_2d(functools.partial(AdamW, foreach=foreach, weight_decay=0.2, amsgrad=True))1137 self._test_complex_2d(functools.partial(AdamW, foreach=foreach, weight_decay=0.2, amsgrad=True))
1287 1138 
1288- def test_sparse_adam(self):
1289- self._test_rosenbrock_sparse(
1290- lambda params: SparseAdam(params, lr=4e-2), [], True
1291- )
1292- self._test_rosenbrock_sparse(
1293- lambda params: SparseAdam(params, lr=4e-2, maximize=True),
1294- scheduler_constructors=[],
1295- sparse_only=True,
1296- maximize=True,
1297- )
1298- import warnings
1299- with warnings.catch_warnings(record=True) as ws:
1300- SparseAdam(torch.zeros(3))
1301- self.assertEqual(len(ws), 1)
1302- for warning in ws:
1303- self.assertEqual(len(warning.message.args), 1)
1304- self.assertRegex(warning.message.args[0],
1305- "Passing in a raw Tensor as ``params`` to SparseAdam ")
1306- with self.assertRaisesRegex(
1307- ValueError, "Invalid beta parameter at index 0: 1.0"
1308- ):
1309- SparseAdam(None, lr=1e-2, betas=(1.0, 0.0))
1310- with self.assertRaisesRegex(
1311- ValueError, "SparseAdam requires dense parameter tensors"
1312- ):
1313- SparseAdam([torch.zeros(3, layout=torch.sparse_coo)])
1314- with self.assertRaisesRegex(
1315- ValueError, "SparseAdam requires dense parameter tensors"
1316- ):
1317- SparseAdam([{"params": [torch.zeros(3, layout=torch.sparse_coo)]}])
1318- 
1319 # ROCm precision is too low to pass this test1139 # ROCm precision is too low to pass this test
1320 @SupportedDevices(["Ascend910B"])1140 @SupportedDevices(["Ascend910B"])
1321 def test_adadelta(self):1141 def test_adadelta(self):
@@ -2284,7 +2104,7 @@ class TestDifferentiableOptimizer(TestCase):
2284 state = {}2104 state = {}
2285 p = torch.rand(10, requires_grad=True, dtype=torch.float64)2105 p = torch.rand(10, requires_grad=True, dtype=torch.float64)
2286 grad = torch.rand(10, requires_grad=True, dtype=torch.float64)2106 grad = torch.rand(10, requires_grad=True, dtype=torch.float64)
2287- state["step"] = 02107+ state["step"] = torch.zeros((), dtype=torch.float64)
2288 state["square_avg"] = torch.rand(10, requires_grad=True, dtype=torch.float64)2108 state["square_avg"] = torch.rand(10, requires_grad=True, dtype=torch.float64)
2289 state["momentum_buffer"] = torch.rand(2109 state["momentum_buffer"] = torch.rand(
2290 10, requires_grad=True, dtype=torch.float642110 10, requires_grad=True, dtype=torch.float64
@@ -32051,8 +32051,6 @@
32051 "test_floordiv_simplify (__main__.TestFloorDiv)": ["", [""]],32051 "test_floordiv_simplify (__main__.TestFloorDiv)": ["", [""]],
32052 "test_floordiv_simplify_rational (__main__.TestFloorDiv)": ["", [""]],32052 "test_floordiv_simplify_rational (__main__.TestFloorDiv)": ["", [""]],
32053 "test_floordiv_zero_base (__main__.TestFloorDiv)": ["", [""]],32053 "test_floordiv_zero_base (__main__.TestFloorDiv)": ["", [""]],
32054- "test_rmsprop (optim.test_optim.TestDifferentiableOptimizer)": ["", [""]],
32055- "test_sparse_adam (optim.test_optim.TestOptim)": ["", [""]],
32056 "test_matmul_backward (__main__.TestRegisterSharding)": ["", [""]],32054 "test_matmul_backward (__main__.TestRegisterSharding)": ["", [""]],
32057 "test_matmul_shardable (__main__.TestRegisterSharding)": ["", [""]],32055 "test_matmul_shardable (__main__.TestRegisterSharding)": ["", [""]],
32058 "test_matmul_unshardable (__main__.TestRegisterSharding)": ["", [""]],32056 "test_matmul_unshardable (__main__.TestRegisterSharding)": ["", [""]],