regmesh = mesh m0 = (-5.) * np.ones(mapping.nP) dmis = DataMisfit.l2_DataMisfit(survey) reg = Regularization.Tikhonov(regmesh) #,mapping = mapping)#,indActive=actind) reg.mref = m0 opt = Optimization.InexactGaussNewton(maxIter=20, tolX=1e-6) opt.remember('xc') invProb = InvProblem.BaseInvProblem(dmis, reg, opt) beta = Directives.BetaEstimate_ByEig(beta0=10., beta0_ratio=1e0) reg.alpha_s = 1e-2 #beta = 0. #invProb.beta = beta betaSched = Directives.BetaSchedule(coolingFactor=5, coolingRate=2) #sav0 = Directives.SaveEveryIteration() #sav1 = Directives.SaveModelEveryIteration() sav2 = Directives.SaveOutputDictEveryIteration() inv = Inversion.BaseInversion(invProb, directiveList=[sav2, beta, betaSched]) #sav0,sav1, mtest = np.load('../Update_W_each_3it_5s_rademacher/finalresult.npy') print "check misfit with W: ", dmis.eval(mtest) / survey.nD mm = meshCore.plotImage(mtest[actind]) plt.colorbar(mm[0]) plt.show() msimple = inv.run(m0) mm = mesh.plotImage(msimple) plt.colorbar(mm[0]) plt.gca().set_xlim([-10., 10.]) plt.gca().set_ylim([-10., 0.]) np.save('./finalresult', msimple)
dim=3, use_cell_weights=True, minimum_distance=1e3) np.random.seed(1) dmisfit = DataMisfit.l2_DataMisfit(survey) dmisfit.W = 1. / uncert opt = Optimization.ProjectedGNCG(maxIter=10, maxIterCG=20) # opt.upper = m_upper # opt.lower = m_lower invProb = InvProblem.BaseInvProblem(dmisfit, reg, opt) beta = Directives.BetaSchedule(coolingFactor=2, coolingRate=1) betaest = Directives.BetaEstimate_ByEig(beta0_ratio=1.) target = Directives.TargetMisfit(chifact=1.) save_model = Directives.SaveOutputDictEveryIteration( directory=output_dir.as_posix()) inv = Inversion.BaseInversion( invProb, directiveList=[beta, betaest, target, save_model]) prob.counter = opt.counter = Utils.Counter() opt.LSshorten = 0.5 opt.remember('xc') try: save_model.outDict = {} except: pass print('Target misfit:', target.target) ## Run it! mopt = inv.run(m0) import local_utils