mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 00:21:07 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/18598 ghimport-source-id: c74597e5e7437e94a43c163cee0639b20d0d0c6a Stack from [ghstack](https://github.com/ezyang/ghstack): * **#18598 Turn on F401: Unused import warning.** This was requested by someone at Facebook; this lint is turned on for Facebook by default. "Sure, why not." I had to noqa a number of imports in __init__. Hypothetically we're supposed to use __all__ in this case, but I was too lazy to fix it. Left for future work. Be careful! flake8-2 and flake8-3 behave differently with respect to import resolution for # type: comments. flake8-3 will report an import unused; flake8-2 will not. For now, I just noqa'd all these sites. All the changes were done by hand. Signed-off-by: Edward Z. Yang <ezyang@fb.com> Differential Revision: D14687478 fbshipit-source-id: 30d532381e914091aadfa0d2a5a89404819663e3
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
import json
|
|
import torch
|
|
import torch.legacy.optim as optim
|
|
|
|
|
|
def rosenbrock(tensor):
|
|
x, y = tensor
|
|
return (1 - x) ** 2 + 100 * (y - x ** 2) ** 2
|
|
|
|
|
|
def drosenbrock(tensor):
|
|
x, y = tensor
|
|
return torch.DoubleTensor((-400 * x * (y - x ** 2) - 2 * (1 - x), 200 * (y - x ** 2)))
|
|
|
|
algorithms = {
|
|
'adadelta': optim.adadelta,
|
|
'adagrad': optim.adagrad,
|
|
'adam': optim.adam,
|
|
'adamax': optim.adamax,
|
|
'asgd': optim.asgd,
|
|
'cg': optim.cg,
|
|
'nag': optim.nag,
|
|
'rmsprop': optim.rmsprop,
|
|
'rprop': optim.rprop,
|
|
'sgd': optim.sgd,
|
|
'lbfgs': optim.lbfgs,
|
|
}
|
|
|
|
with open('tests.json', 'r') as f:
|
|
tests = json.loads(f.read())
|
|
|
|
for test in tests:
|
|
print(test['algorithm'] + '\t')
|
|
algorithm = algorithms[test['algorithm']]
|
|
for config in test['config']:
|
|
print('================================================================================\t')
|
|
params = torch.DoubleTensor((1.5, 1.5))
|
|
for i in range(100):
|
|
algorithm(lambda x: (rosenbrock(x), drosenbrock(x)), params, config)
|
|
print('{:.8f}\t{:.8f}\t'.format(params[0], params[1]))
|