diff options
author | Clement Farabet <clement.farabet@gmail.com> | 2012-01-22 03:13:57 +0400 |
---|---|---|
committer | Clement Farabet <clement.farabet@gmail.com> | 2012-01-22 03:13:57 +0400 |
commit | 9af2449b824158b83e6b9fa7d6ca8d0b6b1ea1b9 (patch) | |
tree | 6ac9f98771271125e1566558d61ae283c8dec79c /test | |
parent | 0e0317d689fcb2a3db822eadae72c0718d101dfe (diff) |
All debugged L-BFGS implementation.
Also solidified APIs across different optimization packages.
Diffstat (limited to 'test')
-rw-r--r-- | test/test_cg.lua | 2 | ||||
-rw-r--r-- | test/test_lbfgs.lua | 16 | ||||
-rw-r--r-- | test/test_sgd.lua | 23 |
3 files changed, 40 insertions, 1 deletions
diff --git a/test/test_cg.lua b/test/test_cg.lua index 7d883e9..706d21e 100644 --- a/test/test_cg.lua +++ b/test/test_cg.lua @@ -6,7 +6,7 @@ dofile('l2.lua') x = torch.Tensor(2):fill(0) -x,fx,i=optim.cg(rosenbrock,x,{length=500}) +x,fx,i=optim.cg(rosenbrock,x,{maxIter=50}) print() print('Rosenbrock test: compare with http://www.gatsby.ucl.ac.uk/~edward/code/minimize/example.html') diff --git a/test/test_lbfgs.lua b/test/test_lbfgs.lua new file mode 100644 index 0000000..5e3a55b --- /dev/null +++ b/test/test_lbfgs.lua @@ -0,0 +1,16 @@ +require 'lab' +require 'optim' +require 'plot' +dofile 'rosenbrock.lua' +dofile 'l2.lua' + +x = torch.Tensor(2):fill(0) +x,fx,i=optim.lbfgs(rosenbrock,x,{maxIter=100, verbose=true, learningRate=1e-1}) + +print() +print('Rosenbrock test') +print() +print('Number of function evals = ',i) +print('x=');print(x) +print('fx=') +for i=1,#fx do print(i,fx[i]); end diff --git a/test/test_sgd.lua b/test/test_sgd.lua new file mode 100644 index 0000000..cd0f830 --- /dev/null +++ b/test/test_sgd.lua @@ -0,0 +1,23 @@ +require 'lab' +require 'optim' +require 'plot' +dofile 'rosenbrock.lua' +dofile 'l2.lua' + +x = torch.Tensor(2):fill(0) +fx = {} + +config = {eta0=1e-3, t0=1000} +for i = 1,10001 do + x,f=optim.sgd(rosenbrock,x,config) + if (i-1)%1000 == 0 then + table.insert(fx,f[1]) + end +end + +print() +print('Rosenbrock test') +print() +print('x=');print(x) +print('fx=') +for i=1,#fx do print((i-1)*1000+1,fx[i]); end |