Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ift
NIFTy
Commits
1285fc8f
Commit
1285fc8f
authored
Aug 19, 2017
by
Martin Reinecke
Browse files
rearrange
parent
9970fc88
Changes
3
Hide whitespace changes
Inline
Side-by-side
test/test_minimization/quadratic_potential.py
deleted
100644 → 0
View file @
9970fc88
# -*- coding: utf-8 -*-
from
nifty
import
Energy
class
QuadraticPotential
(
Energy
):
def
__init__
(
self
,
position
,
eigenvalues
):
super
(
QuadraticPotential
,
self
).
__init__
(
position
)
self
.
eigenvalues
=
eigenvalues
def
at
(
self
,
position
):
return
self
.
__class__
(
position
,
eigenvalues
=
self
.
eigenvalues
)
@
property
def
value
(
self
):
H
=
0.5
*
self
.
position
.
vdot
(
self
.
eigenvalues
(
self
.
position
))
return
H
.
real
@
property
def
gradient
(
self
):
g
=
self
.
eigenvalues
(
self
.
position
)
return
g
@
property
def
curvature
(
self
):
return
self
.
eigenvalues
test/test_minimization/test_descent_minimizers.py
deleted
100644 → 0
View file @
9970fc88
import
unittest
import
numpy
as
np
from
numpy.testing
import
assert_equal
,
assert_almost_equal
from
nifty
import
Field
,
DiagonalOperator
,
RGSpace
,
HPSpace
from
nifty
import
SteepestDescent
,
RelaxedNewton
,
VL_BFGS
from
itertools
import
product
from
test.common
import
expand
from
quadratic_potential
import
QuadraticPotential
from
nifty
import
logger
minimizers
=
[
SteepestDescent
,
RelaxedNewton
,
VL_BFGS
]
spaces
=
[
RGSpace
([
1024
,
1024
],
distances
=
0.123
),
HPSpace
(
32
)]
class
Test_DescentMinimizers
(
unittest
.
TestCase
):
@
expand
([[
minimizer
]
for
minimizer
in
minimizers
])
def
test_interface
(
self
,
minimizer
):
iteration_limit
=
100
convergence_level
=
4
convergence_tolerance
=
1E-6
callback
=
lambda
z
:
z
minimizer
=
minimizer
(
iteration_limit
=
iteration_limit
,
convergence_tolerance
=
convergence_tolerance
,
convergence_level
=
convergence_level
,
callback
=
callback
)
assert_equal
(
minimizer
.
iteration_limit
,
iteration_limit
)
assert_equal
(
minimizer
.
convergence_level
,
convergence_level
)
assert_equal
(
minimizer
.
convergence_tolerance
,
convergence_tolerance
)
assert
(
minimizer
.
callback
is
callback
)
@
expand
(
product
(
minimizers
,
spaces
))
def
test_minimization
(
self
,
minimizer_class
,
space
):
np
.
random
.
seed
(
42
)
starting_point
=
Field
.
from_random
(
'normal'
,
domain
=
space
)
*
10
covariance_diagonal
=
Field
.
from_random
(
'uniform'
,
domain
=
space
)
+
0.5
covariance
=
DiagonalOperator
(
space
,
diagonal
=
covariance_diagonal
)
energy
=
QuadraticPotential
(
position
=
starting_point
,
eigenvalues
=
covariance
)
minimizer
=
minimizer_class
(
iteration_limit
=
30
,
convergence_tolerance
=
1e-10
)
(
energy
,
convergence
)
=
minimizer
(
energy
)
assert_almost_equal
(
energy
.
value
,
0
,
decimal
=
5
)
assert_almost_equal
(
energy
.
position
.
val
.
get_full_data
(),
0.
,
decimal
=
5
)
test/test_minimization/test_
conjugate_gradient
.py
→
test/test_minimization/test_
minimizers
.py
View file @
1285fc8f
File moved
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment