Skip to content
GitLab
Menu
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
e38eae92
Commit
e38eae92
authored
Feb 06, 2017
by
Theo Steininger
Browse files
Merge branch 'newton' into 'master'
Newton See merge request
!45
parents
8b7f9360
73dabd0b
Pipeline
#9995
failed with stages
in 34 minutes and 14 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
demos/wiener_filter_hamiltonian.py
View file @
e38eae92
from
nifty
import
*
import
plotly.offline
as
pl
import
plotly.graph_objs
as
go
#
import plotly.offline as pl
#
import plotly.graph_objs as go
from
mpi4py
import
MPI
comm
=
MPI
.
COMM_WORLD
...
...
nifty/minimization/quasi_newton_minimizer.py
View file @
e38eae92
...
...
@@ -80,9 +80,8 @@ class QuasiNewtonMinimizer(Loggable, object):
convergence
=
self
.
convergence_level
+
2
break
current_position
=
energy
.
position
descend_direction
=
self
.
_get_descend_direction
(
current_position
,
gradient
)
# current position is encoded in energy object
descend_direction
=
self
.
_get_descend_direction
(
energy
)
# compute the step length, which minimizes energy.value along the
# search direction
...
...
@@ -124,5 +123,5 @@ class QuasiNewtonMinimizer(Loggable, object):
return
energy
,
convergence
@
abc
.
abstractmethod
def
_get_descend_direction
(
self
,
gradient
,
gradient_norm
):
def
_get_descend_direction
(
self
,
energy
):
raise
NotImplementedError
nifty/minimization/relaxed_newton.py
0 → 100644
View file @
e38eae92
# -*- coding: utf-8 -*-
from
.quasi_newton_minimizer
import
QuasiNewtonMinimizer
class
RelaxedNewton
(
QuasiNewtonMinimizer
):
def
_get_descend_direction
(
self
,
energy
):
gradient
=
energy
.
gradient
curvature
=
energy
.
curvature
descend_direction
=
curvature
.
inverse_times
(
gradient
)
norm
=
descend_direction
.
norm
()
if
norm
!=
1
:
return
descend_direction
/
-
norm
else
:
return
descend_direction
*
-
1
nifty/minimization/steepest_descent.py
View file @
e38eae92
...
...
@@ -4,8 +4,8 @@ from .quasi_newton_minimizer import QuasiNewtonMinimizer
class
SteepestDescent
(
QuasiNewtonMinimizer
):
def
_get_descend_direction
(
self
,
x
,
gradient
):
descend_direction
=
gradient
def
_get_descend_direction
(
self
,
energy
):
descend_direction
=
energy
.
gradient
norm
=
descend_direction
.
norm
()
if
norm
!=
1
:
return
descend_direction
/
-
norm
...
...
nifty/minimization/vl_bfgs.py
View file @
e38eae92
...
...
@@ -24,7 +24,9 @@ class VL_BFGS(QuasiNewtonMinimizer):
self
.
_information_store
=
None
return
super
(
VL_BFGS
,
self
).
__call__
(
energy
)
def
_get_descend_direction
(
self
,
x
,
gradient
):
def
_get_descend_direction
(
self
,
energy
):
x
=
energy
.
position
gradient
=
energy
.
gradient
# initialize the information store if it doesn't already exist
try
:
self
.
_information_store
.
add_new_point
(
x
,
gradient
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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