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
784f49a3
Commit
784f49a3
authored
Sep 26, 2019
by
Reimar H Leike
Browse files
removed print statement and added the option to set the new constants of NewtonCG in init
parent
bbd2040f
Pipeline
#61064
passed with stages
in 9 minutes and 21 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
nifty5/minimization/descent_minimizers.py
View file @
784f49a3
...
@@ -166,7 +166,7 @@ class NewtonCG(DescentMinimizer):
...
@@ -166,7 +166,7 @@ class NewtonCG(DescentMinimizer):
"""
"""
def
__init__
(
self
,
controller
,
napprox
=
0
,
line_searcher
=
None
,
name
=
None
,
def
__init__
(
self
,
controller
,
napprox
=
0
,
line_searcher
=
None
,
name
=
None
,
nreset
=
20
):
nreset
=
20
,
max_cg_iterations
=
200
,
energy_reduction_factor
=
0.1
):
if
line_searcher
is
None
:
if
line_searcher
is
None
:
line_searcher
=
LineSearch
(
preferred_initial_step_size
=
1.
)
line_searcher
=
LineSearch
(
preferred_initial_step_size
=
1.
)
super
(
NewtonCG
,
self
).
__init__
(
controller
=
controller
,
super
(
NewtonCG
,
self
).
__init__
(
controller
=
controller
,
...
@@ -174,15 +174,16 @@ class NewtonCG(DescentMinimizer):
...
@@ -174,15 +174,16 @@ class NewtonCG(DescentMinimizer):
self
.
_napprox
=
napprox
self
.
_napprox
=
napprox
self
.
_name
=
name
self
.
_name
=
name
self
.
_nreset
=
nreset
self
.
_nreset
=
nreset
self
.
_max_cg_iterations
=
max_cg_iterations
self
.
_alpha
=
energy_reduction_factor
def
get_descent_direction
(
self
,
energy
,
old_value
=
None
):
def
get_descent_direction
(
self
,
energy
,
old_value
=
None
):
if
old_value
is
None
:
if
old_value
is
None
:
ic
=
GradientNormController
(
iteration_limit
=
5
)
ic
=
GradientNormController
(
iteration_limit
=
5
)
else
:
else
:
alpha
=
0.1
ediff
=
self
.
_alpha
*
(
old_value
-
energy
.
value
)
ediff
=
alpha
*
(
old_value
-
energy
.
value
)
ic
=
AbsDeltaEnergyController
(
ic
=
AbsDeltaEnergyController
(
ediff
,
iteration_limit
=
200
,
name
=
self
.
_name
)
ediff
,
iteration_limit
=
self
.
_max_cg_iterations
,
name
=
self
.
_name
)
e
=
QuadraticEnergy
(
0
*
energy
.
position
,
energy
.
metric
,
energy
.
gradient
)
e
=
QuadraticEnergy
(
0
*
energy
.
position
,
energy
.
metric
,
energy
.
gradient
)
p
=
None
p
=
None
if
self
.
_napprox
>
1
:
if
self
.
_napprox
>
1
:
...
...
nifty5/probing.py
View file @
784f49a3
...
@@ -138,7 +138,6 @@ def probe_diagonal(op, nprobes, random_type="pm1"):
...
@@ -138,7 +138,6 @@ def probe_diagonal(op, nprobes, random_type="pm1"):
def
approximation2endo
(
op
,
nsamples
):
def
approximation2endo
(
op
,
nsamples
):
print
(
'Calculate preconditioner'
)
sc
=
StatCalculator
()
sc
=
StatCalculator
()
for
_
in
range
(
nsamples
):
for
_
in
range
(
nsamples
):
sc
.
add
(
op
.
draw_sample
())
sc
.
add
(
op
.
draw_sample
())
...
...
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