Skip to content

Commit ff09701

Browse files
committed
Fix stashed reg deriv2
1 parent 531f4ab commit ff09701

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

SimPEG/dask/inverse_problem.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import gc
1010
from ..regularization import BaseComboRegularization, Sparse
1111
from ..data_misfit import BaseDataMisfit
12-
from ..objective_function import BaseObjectiveFunction
12+
from ..objective_function import BaseObjectiveFunction, ComboObjectiveFunction
1313

1414

1515
def dask_getFields(self, m, store=False, deleteWarmstart=True):
@@ -136,7 +136,7 @@ def get_dpred(self, m, f=None, compute_J=False):
136136
vec, compute_J=compute_sensitivities
137137
))[0]
138138

139-
if compute_sensitivities and objfct.simulation.verbose:
139+
if compute_sensitivities:
140140
runtime = time() - ct
141141
total = len(self.dmisfit.objfcts)
142142

@@ -190,7 +190,19 @@ def dask_evalFunction(self, m, return_g=True, return_H=True):
190190

191191
phi_d = np.asarray(phi_d)
192192
# print(self.dpred[0])
193-
self.reg2Deriv = [obj.deriv2(m) for obj in self.reg.objfcts]
193+
194+
195+
if isinstance(self.reg, ComboObjectiveFunction) and not isinstance(
196+
self.reg, BaseComboRegularization
197+
):
198+
reg2Deriv = []
199+
for fct in self.reg.objfcts:
200+
reg2Deriv += [multi * obj.deriv2(m) for multi, obj in fct]
201+
else:
202+
reg2Deriv = [multi * obj.deriv2(m) for multi, obj in self.reg]
203+
204+
self.reg2Deriv = np.sum(reg2Deriv)
205+
194206
# reg = np.linalg.norm(self.reg2Deriv * self.reg._delta_m(m))
195207
phi_m = self.reg(m)
196208

@@ -244,7 +256,7 @@ def dask_evalFunction(self, m, return_g=True, return_H=True):
244256

245257
def H_fun(v):
246258
phi_d2Deriv = self.dmisfit.deriv2(m, v)
247-
phi_m2Deriv = np.sum([reg2Deriv * v for reg2Deriv in self.reg2Deriv], axis=0)
259+
phi_m2Deriv = self.reg2Deriv * v
248260

249261
H = phi_d2Deriv + self.beta * phi_m2Deriv
250262

0 commit comments

Comments
 (0)