I am trying to fit parameters to minimize the errors for both ET and T (see below) i.e., with multiple losses using library lmfit. ET and T can have different lengths. What modification do I need to make in function min_model to consider multiple losses (loss_1 and loss_2) during optimization? from lmfit import Minimizer, Parameters def min_model(params,df,obs_LE,weekly_T_obs_global): mod_LE,_,_,_,T_ET_pre = calLE_PM(df,params) weekly_LE_mod = weekly_average(DateTime,mod_LE) weekly_LE_obs = weekly_average(DateTime,obs_LE) weekly_T_ET_mod = weekly_average(DateTime,T_ET_pre) weekly_T_mod = weekly_LE_mod*weekly_T_ET_mod temp = pd.DataFrame({'weekly_T_obs_global':weekly_T_obs_global,'weekly_T_mod':weekly_T_mod, 'weekly_LE_obs':weekly_LE_obs,'weekly_LE_mod':weekly_LE_mod}) temp = temp.dropna() weekly_T_obs_global_1 = temp['weekly_T_obs_global'].values weekly_T_mod_1 = temp['weekly_T_mod'].values weekly_LE_mod_1 = temp['weekly_LE_mod'] weekly_LE_obs_1 = temp['weekly_LE_obs'] loss_1 = (obs_LE - mod_LE) ** 2 # Loss 1 loss_2 = (weekly_LE_obs_1 - weekly_LE_mod_1)**2 # Loss 2 return loss_1 def fit_gsurf_params(df,weekly_T_obs_global, tag=1, min_fit_var='LE_c'): params = setup_params(tag) LE_obs = df[min_fit_var] minner = Minimizer(min_model, params, fcn_args=(df,LE_obs,weekly_T_obs_global)) fit = minner.minimize() LE_pm,g_surf_mod,g_canopy_mod,g_soil_mod,_ = calLE_PM(df,fit.params) return g_surf_mod, g_soil_mod, g_canopy_mod, LE_pm Continue reading...