From 6ffc8a43ccaa5b202f0a01ebb90d270260cffa50 Mon Sep 17 00:00:00 2001 From: Anirban Chaudhuri <75496534+anirban-chaudhuri@users.noreply.github.com> Date: Thu, 1 Aug 2024 16:37:40 -0400 Subject: [PATCH] checking shape of samples --- docs/source/interfaces.ipynb | 58 ++++++++++++++++++++++-------------- pyciemss/ouu/ouu.py | 4 +-- 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/docs/source/interfaces.ipynb b/docs/source/interfaces.ipynb index 7c4c6aaee..0f4816656 100644 --- a/docs/source/interfaces.ipynb +++ b/docs/source/interfaces.ipynb @@ -2513,7 +2513,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -2527,6 +2527,7 @@ " Note: last ndays timepoints is assumed to represent last n-days of simulation.\n", " \"\"\"\n", " dataQoI = samples[contexts[0]].detach().numpy()\n", + " print(dataQoI.shape)\n", " return np.mean(dataQoI[:, -ndays:], axis=1)\n", "\n", "start_time = 0.0\n", @@ -2538,42 +2539,55 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - " 45%|████▌ | 9/20 [00:05<00:06, 1.77it/s]" + "C:\\Users\\Anirban\\Documents\\GitHub\\pyciemss\\pyciemss\\interfaces.py:870: UserWarning: risk_bound is not a List. Forcing it to be a list.\n", + " warnings.warn(\"risk_bound is not a List. Forcing it to be a list.\")\n", + "C:\\Users\\Anirban\\Documents\\GitHub\\pyciemss\\pyciemss\\interfaces.py:873: UserWarning: qoi is not a List. Forcing it to be a list.\n", + " warnings.warn(\"qoi is not a List. Forcing it to be a list.\")\n", + " 0%| | 0/20 [00:00 15\u001b[0m opt_result \u001b[38;5;241m=\u001b[39m \u001b[43mpyciemss\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptimize\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 16\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel3\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 17\u001b[0m \u001b[43m \u001b[49m\u001b[43mend_time\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 18\u001b[0m \u001b[43m \u001b[49m\u001b[43mlogging_step_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 19\u001b[0m \u001b[43m \u001b[49m\u001b[43mqoi\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 20\u001b[0m \u001b[43m \u001b[49m\u001b[43mrisk_bound\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 21\u001b[0m \u001b[43m \u001b[49m\u001b[43mstatic_parameter_interventions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 22\u001b[0m \u001b[43m \u001b[49m\u001b[43mobjfun\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 23\u001b[0m \u001b[43m \u001b[49m\u001b[43minitial_guess_interventions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minitial_guess_interventions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 24\u001b[0m \u001b[43m \u001b[49m\u001b[43mbounds_interventions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbounds_interventions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 25\u001b[0m \u001b[43m \u001b[49m\u001b[43mstart_time\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0.0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 26\u001b[0m \u001b[43m \u001b[49m\u001b[43mn_samples_ouu\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mint\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m1e2\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 27\u001b[0m \u001b[43m \u001b[49m\u001b[43mmaxiter\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 28\u001b[0m \u001b[43m \u001b[49m\u001b[43mmaxfeval\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m20\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 29\u001b[0m \u001b[43m \u001b[49m\u001b[43msolver_method\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43meuler\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 30\u001b[0m \u001b[43m \u001b[49m\u001b[43msolver_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstep_size\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mlogging_step_size\u001b[49m\u001b[38;5;241;43m/\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 31\u001b[0m \u001b[43m)\u001b[49m\n\u001b[0;32m 32\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mOptimal policy:\u001b[39m\u001b[38;5;124m'\u001b[39m, opt_result[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpolicy\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 33\u001b[0m \u001b[38;5;28mprint\u001b[39m(opt_result)\n", + "File \u001b[1;32m~\\Documents\\GitHub\\pyciemss\\pyciemss\\interfaces.py:953\u001b[0m, in \u001b[0;36moptimize\u001b[1;34m(model_path_or_json, end_time, logging_step_size, qoi, risk_bound, static_parameter_interventions, objfun, initial_guess_interventions, bounds_interventions, alpha, solver_method, solver_options, start_time, inferred_parameters, fixed_static_parameter_interventions, n_samples_ouu, maxiter, maxfeval, verbose, roundup_decimal)\u001b[0m\n\u001b[0;32m 943\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m objfun(x)\n\u001b[0;32m 945\u001b[0m start_time \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[0;32m 946\u001b[0m opt_results \u001b[38;5;241m=\u001b[39m \u001b[43msolveOUU\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 947\u001b[0m \u001b[43m \u001b[49m\u001b[43mx0\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minitial_guess_interventions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 948\u001b[0m \u001b[43m \u001b[49m\u001b[43mobjfun\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mobjfun_penalty\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 949\u001b[0m \u001b[43m \u001b[49m\u001b[43mconstraints\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconstraints\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 950\u001b[0m \u001b[43m \u001b[49m\u001b[43mmaxiter\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmaxiter\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 951\u001b[0m \u001b[43m \u001b[49m\u001b[43mmaxfeval\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmaxfeval\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 952\u001b[0m \u001b[43m \u001b[49m\u001b[43mu_bounds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbounds_np\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m--> 953\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msolve\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 955\u001b[0m \u001b[38;5;66;03m# Rounding up to given number of decimal places\u001b[39;00m\n\u001b[0;32m 956\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mround_up\u001b[39m(num, dec\u001b[38;5;241m=\u001b[39mroundup_decimal):\n", + "File \u001b[1;32m~\\Documents\\GitHub\\pyciemss\\pyciemss\\ouu\\ouu.py:230\u001b[0m, in \u001b[0;36msolveOUU.solve\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 226\u001b[0m take_step \u001b[38;5;241m=\u001b[39m RandomDisplacementBounds(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mu_bounds[\u001b[38;5;241m0\u001b[39m, :], \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mu_bounds[\u001b[38;5;241m1\u001b[39m, :])\n\u001b[0;32m 227\u001b[0m \u001b[38;5;66;03m# result = basinhopping(self._vrate, u_init, stepsize=stepsize, T=1.5,\u001b[39;00m\n\u001b[0;32m 228\u001b[0m \u001b[38;5;66;03m# niter=self.maxiter, minimizer_kwargs=minimizer_kwargs, take_step=take_step, interval=2)\u001b[39;00m\n\u001b[1;32m--> 230\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mbasinhopping\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 231\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mobjfun\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 232\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mx0\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 233\u001b[0m \u001b[43m \u001b[49m\u001b[43mT\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1.5\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 234\u001b[0m \u001b[43m \u001b[49m\u001b[43mniter\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmaxiter\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 235\u001b[0m \u001b[43m \u001b[49m\u001b[43mminimizer_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mminimizer_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 236\u001b[0m \u001b[43m \u001b[49m\u001b[43mtake_step\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtake_step\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 237\u001b[0m \u001b[43m \u001b[49m\u001b[43minterval\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 238\u001b[0m \u001b[43m \u001b[49m\u001b[43mdisp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 239\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 241\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n", + "File \u001b[1;32mc:\\Users\\Anirban\\anaconda3\\envs\\askem\\lib\\site-packages\\scipy\\optimize\\_basinhopping.py:714\u001b[0m, in \u001b[0;36mbasinhopping\u001b[1;34m(func, x0, niter, T, stepsize, minimizer_kwargs, take_step, accept_test, callback, interval, disp, niter_success, seed, target_accept_rate, stepwise_factor)\u001b[0m\n\u001b[0;32m 711\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m niter_success \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 712\u001b[0m niter_success \u001b[38;5;241m=\u001b[39m niter \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m--> 714\u001b[0m bh \u001b[38;5;241m=\u001b[39m \u001b[43mBasinHoppingRunner\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx0\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mwrapped_minimizer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtake_step_wrapped\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 715\u001b[0m \u001b[43m \u001b[49m\u001b[43maccept_tests\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdisp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdisp\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 717\u001b[0m \u001b[38;5;66;03m# The wrapped minimizer is called once during construction of\u001b[39;00m\n\u001b[0;32m 718\u001b[0m \u001b[38;5;66;03m# BasinHoppingRunner, so run the callback\u001b[39;00m\n\u001b[0;32m 719\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcallable\u001b[39m(callback):\n", + "File \u001b[1;32mc:\\Users\\Anirban\\anaconda3\\envs\\askem\\lib\\site-packages\\scipy\\optimize\\_basinhopping.py:78\u001b[0m, in \u001b[0;36mBasinHoppingRunner.__init__\u001b[1;34m(self, x0, minimizer, step_taking, accept_tests, disp)\u001b[0m\n\u001b[0;32m 75\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mres\u001b[38;5;241m.\u001b[39mminimization_failures \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n\u001b[0;32m 77\u001b[0m \u001b[38;5;66;03m# do initial minimization\u001b[39;00m\n\u001b[1;32m---> 78\u001b[0m minres \u001b[38;5;241m=\u001b[39m \u001b[43mminimizer\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 79\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m minres\u001b[38;5;241m.\u001b[39msuccess:\n\u001b[0;32m 80\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mres\u001b[38;5;241m.\u001b[39mminimization_failures \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n", + "File \u001b[1;32mc:\\Users\\Anirban\\anaconda3\\envs\\askem\\lib\\site-packages\\scipy\\optimize\\_basinhopping.py:303\u001b[0m, in \u001b[0;36mMinimizerWrapper.__call__\u001b[1;34m(self, x0)\u001b[0m\n\u001b[0;32m 301\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mminimizer(x0, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkwargs)\n\u001b[0;32m 302\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 303\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mminimizer(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfunc, x0, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkwargs)\n", + "File \u001b[1;32mc:\\Users\\Anirban\\anaconda3\\envs\\askem\\lib\\site-packages\\scipy\\optimize\\_minimize.py:716\u001b[0m, in \u001b[0;36mminimize\u001b[1;34m(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)\u001b[0m\n\u001b[0;32m 713\u001b[0m res \u001b[38;5;241m=\u001b[39m _minimize_tnc(fun, x0, args, jac, bounds, callback\u001b[38;5;241m=\u001b[39mcallback,\n\u001b[0;32m 714\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39moptions)\n\u001b[0;32m 715\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m meth \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcobyla\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[1;32m--> 716\u001b[0m res \u001b[38;5;241m=\u001b[39m _minimize_cobyla(fun, x0, args, constraints, callback\u001b[38;5;241m=\u001b[39mcallback,\n\u001b[0;32m 717\u001b[0m bounds\u001b[38;5;241m=\u001b[39mbounds, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39moptions)\n\u001b[0;32m 718\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m meth \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mslsqp\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[0;32m 719\u001b[0m res \u001b[38;5;241m=\u001b[39m _minimize_slsqp(fun, x0, args, jac, bounds,\n\u001b[0;32m 720\u001b[0m constraints, callback\u001b[38;5;241m=\u001b[39mcallback, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39moptions)\n", + "File \u001b[1;32mc:\\Users\\Anirban\\anaconda3\\envs\\askem\\lib\\site-packages\\scipy\\optimize\\_cobyla_py.py:35\u001b[0m, in \u001b[0;36msynchronized..wrapper\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[0;32m 33\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m 34\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m _module_lock:\n\u001b[1;32m---> 35\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[1;32mc:\\Users\\Anirban\\anaconda3\\envs\\askem\\lib\\site-packages\\scipy\\optimize\\_cobyla_py.py:266\u001b[0m, in \u001b[0;36m_minimize_cobyla\u001b[1;34m(fun, x0, args, constraints, rhobeg, tol, maxiter, disp, catol, callback, bounds, **unknown_options)\u001b[0m\n\u001b[0;32m 264\u001b[0m cons_lengths \u001b[38;5;241m=\u001b[39m []\n\u001b[0;32m 265\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m c \u001b[38;5;129;01min\u001b[39;00m constraints:\n\u001b[1;32m--> 266\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[43mc\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mfun\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx0\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mc\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43margs\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 267\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 268\u001b[0m cons_length \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(f)\n", + "File \u001b[1;32m~\\Documents\\GitHub\\pyciemss\\pyciemss\\interfaces.py:925\u001b[0m, in \u001b[0;36moptimize..\u001b[1;34m(x)\u001b[0m\n\u001b[0;32m 921\u001b[0m RISK\u001b[38;5;241m.\u001b[39mnum_samples \u001b[38;5;241m=\u001b[39m n_samples_ouu\n\u001b[0;32m 922\u001b[0m \u001b[38;5;66;03m# Define constraints >= 0\u001b[39;00m\n\u001b[0;32m 923\u001b[0m constraints \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 924\u001b[0m \u001b[38;5;66;03m# risk constraint\u001b[39;00m\n\u001b[1;32m--> 925\u001b[0m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mineq\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfun\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;01mlambda\u001b[39;00m x: np\u001b[38;5;241m.\u001b[39marray(risk_bound) \u001b[38;5;241m-\u001b[39m \u001b[43mRISK\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m},\n\u001b[0;32m 926\u001b[0m \u001b[38;5;66;03m# bounds on control\u001b[39;00m\n\u001b[0;32m 927\u001b[0m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mineq\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfun\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;01mlambda\u001b[39;00m x: x \u001b[38;5;241m-\u001b[39m u_min},\n\u001b[0;32m 928\u001b[0m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mineq\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfun\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;01mlambda\u001b[39;00m x: u_max \u001b[38;5;241m-\u001b[39m x},\n\u001b[0;32m 929\u001b[0m )\n\u001b[0;32m 930\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m verbose:\n\u001b[0;32m 931\u001b[0m \u001b[38;5;28mprint\u001b[39m(\n\u001b[0;32m 932\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPerforming risk-based optimization under uncertainty (using alpha-superquantile)\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 933\u001b[0m )\n", + "File \u001b[1;32m~\\Documents\\GitHub\\pyciemss\\pyciemss\\ouu\\ouu.py:122\u001b[0m, in \u001b[0;36mcomputeRisk.__call__\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 120\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mqoi)):\n\u001b[0;32m 121\u001b[0m \u001b[38;5;28mprint\u001b[39m(sample_qoi[i]\u001b[38;5;241m.\u001b[39mshape, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrisk_measure[i](sample_qoi[i]))\n\u001b[1;32m--> 122\u001b[0m \u001b[43mrisk_estimate\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrisk_measure[i](sample_qoi[i])\n\u001b[0;32m 123\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m risk_estimate\n", + "\u001b[1;31mValueError\u001b[0m: setting an array element with a sequence." ] } ], diff --git a/pyciemss/ouu/ouu.py b/pyciemss/ouu/ouu.py index 0079fb474..8faf6b8c3 100644 --- a/pyciemss/ouu/ouu.py +++ b/pyciemss/ouu/ouu.py @@ -114,11 +114,11 @@ def __call__(self, x): samples = self.propagate_uncertainty(x) # Compute quanity of interest sample_qoi = [q(samples) for q in self.qoi] - # print(len(sample_qoi)) + print(len(sample_qoi)) # Estimate risk risk_estimate = np.full(len(self.qoi), np.nan) for i in range(len(self.qoi)): - # print(sample_qoi[i].shape) + print(sample_qoi[i].shape, self.risk_measure[i](sample_qoi[i])) risk_estimate[i] = self.risk_measure[i](sample_qoi[i]) return risk_estimate