From 2d053cc4bbe5559c32205c299865c6109029b21b Mon Sep 17 00:00:00 2001 From: Martin Schubert Date: Fri, 17 Nov 2023 14:19:56 -0800 Subject: [PATCH] Add polarization sorter challenge --- notebooks/sorter_challenge.ipynb | 237 +----------------- src/invrs_gym/challenges/sorter/common.py | 136 +++++----- .../sorter/polarization_challenge.py | 174 +++++++++++++ tests/challenges/sorter/test_common.py | 33 ++- .../sorter/test_polarization_challenge.py | 166 ++++-------- 5 files changed, 333 insertions(+), 413 deletions(-) diff --git a/notebooks/sorter_challenge.ipynb b/notebooks/sorter_challenge.ipynb index ba6be20..772c4a5 100644 --- a/notebooks/sorter_challenge.ipynb +++ b/notebooks/sorter_challenge.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "fc33dfc4-383e-4b94-b857-c293d67d5f9f", "metadata": {}, "outputs": [], @@ -22,119 +22,10 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "75c4730c-9d4a-4e11-bb7d-9bc260c31581", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "000 (53.06/0.30s): loss=0.952, power=[0.9814789 0.9830941 0.98099357 0.9821456 ]\n", - "001 (35.17/0.05s): loss=0.803, power=[1.0585213 1.0876892 1.0856317 1.0707858]\n", - "002 (37.59/0.39s): loss=0.747, power=[1.0771228 1.0361519 1.0754797 1.0305408]\n", - "003 (56.44/0.35s): loss=0.804, power=[1.0679795 1.07031 1.0379411 1.0755358]\n", - "004 (47.26/0.12s): loss=0.994, power=[1.0987885 1.1163751 1.1061035 1.0788128]\n", - "005 (41.55/0.18s): loss=0.724, power=[1.0426364 1.0393405 1.0487345 1.0353804]\n", - "006 (46.51/0.18s): loss=0.698, power=[1.044296 1.0268582 1.047323 1.0297412]\n", - "007 (27.24/0.37s): loss=0.684, power=[1.0820029 1.0503981 1.0431168 1.01683 ]\n", - "008 (42.84/0.07s): loss=0.593, power=[1.0353112 1.0278314 1.0233927 1.0200742]\n", - "009 (58.76/0.20s): loss=0.597, power=[1.0176882 1.0166383 1.0317895 1.0372928]\n", - "010 (46.71/0.34s): loss=0.586, power=[1.0414394 1.0248262 1.0270491 1.0169681]\n", - "011 (64.77/0.24s): loss=0.540, power=[1.0085971 1.0227263 1.0093226 1.0129821]\n", - "012 (51.94/0.29s): loss=0.505, power=[1.0099463 1.0170773 1.00856 1.0074978]\n", - "013 (54.95/0.27s): loss=0.523, power=[1.005252 1.0018039 1.0085198 1.0103043]\n", - "014 (49.41/0.56s): loss=0.487, power=[1.0039221 1.0224291 1.0292152 1.0396503]\n", - "015 (34.55/0.34s): loss=0.478, power=[0.9876156 0.9974743 1.0051879 1.0050476]\n", - "016 (60.79/0.56s): loss=0.468, power=[1.0059998 1.0148542 1.0042467 1.0070915]\n", - "017 (66.18/0.66s): loss=0.490, power=[1.0273339 1.0536546 1.0256689 1.0229696]\n", - "018 (55.16/0.46s): loss=0.485, power=[1.0044863 1.0257117 1.0160269 1.0215753]\n", - "019 (63.44/0.38s): loss=0.473, power=[1.0084434 1.0137618 1.0115329 1.0165815]\n", - "020 (51.57/0.47s): loss=0.474, power=[1.0090235 1.0119228 1.01689 1.0219468]\n", - "021 (50.24/0.31s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "022 (43.39/0.28s): loss=0.469, power=[1.0055685 1.015332 1.0046237 1.0074353]\n", - "023 (56.51/0.28s): loss=0.468, power=[1.0065734 1.0154843 1.0050478 1.0071726]\n", - "024 (50.61/0.73s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "025 (55.21/0.18s): loss=0.524, power=[1.0176387 1.0280463 1.0275526 1.0421182]\n", - "026 (61.65/0.31s): loss=0.502, power=[1.0213026 1.0380449 1.0071878 1.028391 ]\n", - "027 (43.47/0.07s): loss=0.480, power=[1.0070065 1.0182558 1.0139356 1.0211244]\n", - "028 (58.35/0.20s): loss=0.473, power=[1.0094683 1.0134557 1.0118153 1.0157716]\n", - "029 (13.94/0.50s): loss=0.486, power=[1.0169672 1.0134531 1.0272123 1.0286696]\n", - "030 (43.94/0.10s): loss=0.468, power=[1.0065515 1.0150603 1.0056534 1.0076014]\n", - "031 (32.39/0.45s): loss=0.468, power=[1.0055085 1.0150669 1.0053277 1.0076215]\n", - "032 (45.62/0.17s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "033 (72.15/0.48s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "034 (43.88/0.30s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "035 (46.07/0.06s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "036 (27.75/0.13s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "037 (22.27/0.34s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "038 (60.47/0.20s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "039 (69.88/0.29s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "040 (48.42/0.06s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "041 (53.41/0.05s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "042 (53.97/0.41s): loss=0.467, power=[1.0064192 1.0152873 1.0032867 1.005512 ]\n", - "043 (42.26/0.17s): loss=0.525, power=[1.017844 1.0288509 1.0278358 1.0425972]\n", - "044 (55.50/0.13s): loss=0.505, power=[1.0251377 1.0434997 1.0120844 1.0290709]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Exception ignored in: \n", - "Traceback (most recent call last):\n", - " File \"/home/mfschubert/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/lib/__init__.py\", line 97, in _xla_gc_callback\n", - " def _xla_gc_callback(*args):\n", - "KeyboardInterrupt: \n", - "Exception ignored in: \n", - "Traceback (most recent call last):\n", - " File \"/home/mfschubert/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/lib/__init__.py\", line 97, in _xla_gc_callback\n", - " def _xla_gc_callback(*args):\n", - "KeyboardInterrupt: \n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[7], line 76\u001b[0m\n\u001b[1;32m 74\u001b[0m t0 \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m 75\u001b[0m params \u001b[38;5;241m=\u001b[39m opt\u001b[38;5;241m.\u001b[39mparams(state)\n\u001b[0;32m---> 76\u001b[0m (value, (response, aux)), grad \u001b[38;5;241m=\u001b[39m \u001b[43mvalue_and_grad_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 77\u001b[0m t1 \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m 78\u001b[0m state \u001b[38;5;241m=\u001b[39m opt\u001b[38;5;241m.\u001b[39mupdate(grad\u001b[38;5;241m=\u001b[39mgrad, value\u001b[38;5;241m=\u001b[39mvalue, params\u001b[38;5;241m=\u001b[39mparams, state\u001b[38;5;241m=\u001b[39mstate)\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/api.py:744\u001b[0m, in \u001b[0;36mvalue_and_grad..value_and_grad_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 742\u001b[0m ans, vjp_py \u001b[38;5;241m=\u001b[39m _vjp(f_partial, \u001b[38;5;241m*\u001b[39mdyn_args, reduce_axes\u001b[38;5;241m=\u001b[39mreduce_axes)\n\u001b[1;32m 743\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 744\u001b[0m ans, vjp_py, aux \u001b[38;5;241m=\u001b[39m \u001b[43m_vjp\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 745\u001b[0m \u001b[43m \u001b[49m\u001b[43mf_partial\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdyn_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhas_aux\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreduce_axes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreduce_axes\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 746\u001b[0m _check_scalar(ans)\n\u001b[1;32m 747\u001b[0m tree_map(partial(_check_output_dtype_grad, holomorphic), ans)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/api.py:2253\u001b[0m, in \u001b[0;36m_vjp\u001b[0;34m(fun, has_aux, reduce_axes, *primals)\u001b[0m\n\u001b[1;32m 2251\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 2252\u001b[0m flat_fun, out_aux_trees \u001b[38;5;241m=\u001b[39m flatten_fun_nokwargs2(fun, in_tree)\n\u001b[0;32m-> 2253\u001b[0m out_primal, out_vjp, aux \u001b[38;5;241m=\u001b[39m \u001b[43mad\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvjp\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2254\u001b[0m \u001b[43m \u001b[49m\u001b[43mflat_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprimals_flat\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhas_aux\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreduce_axes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreduce_axes\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2255\u001b[0m out_tree, aux_tree \u001b[38;5;241m=\u001b[39m out_aux_trees()\n\u001b[1;32m 2256\u001b[0m out_primal_py \u001b[38;5;241m=\u001b[39m tree_unflatten(out_tree, out_primal)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/interpreters/ad.py:142\u001b[0m, in \u001b[0;36mvjp\u001b[0;34m(traceable, primals, has_aux, reduce_axes)\u001b[0m\n\u001b[1;32m 140\u001b[0m out_primals, pvals, jaxpr, consts \u001b[38;5;241m=\u001b[39m linearize(traceable, \u001b[38;5;241m*\u001b[39mprimals)\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 142\u001b[0m out_primals, pvals, jaxpr, consts, aux \u001b[38;5;241m=\u001b[39m \u001b[43mlinearize\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtraceable\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mprimals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhas_aux\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 144\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21munbound_vjp\u001b[39m(pvals, jaxpr, consts, \u001b[38;5;241m*\u001b[39mcts):\n\u001b[1;32m 145\u001b[0m cts \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(ct \u001b[38;5;28;01mfor\u001b[39;00m ct, pval \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(cts, pvals) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m pval\u001b[38;5;241m.\u001b[39mis_known())\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/interpreters/ad.py:129\u001b[0m, in \u001b[0;36mlinearize\u001b[0;34m(traceable, *primals, **kwargs)\u001b[0m\n\u001b[1;32m 127\u001b[0m _, in_tree \u001b[38;5;241m=\u001b[39m tree_flatten(((primals, primals), {}))\n\u001b[1;32m 128\u001b[0m jvpfun_flat, out_tree \u001b[38;5;241m=\u001b[39m flatten_fun(jvpfun, in_tree)\n\u001b[0;32m--> 129\u001b[0m jaxpr, out_pvals, consts \u001b[38;5;241m=\u001b[39m \u001b[43mpe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrace_to_jaxpr_nounits\u001b[49m\u001b[43m(\u001b[49m\u001b[43mjvpfun_flat\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_pvals\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 130\u001b[0m out_primals_pvals, out_tangents_pvals \u001b[38;5;241m=\u001b[39m tree_unflatten(out_tree(), out_pvals)\n\u001b[1;32m 131\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mall\u001b[39m(out_primal_pval\u001b[38;5;241m.\u001b[39mis_known() \u001b[38;5;28;01mfor\u001b[39;00m out_primal_pval \u001b[38;5;129;01min\u001b[39;00m out_primals_pvals)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/profiler.py:314\u001b[0m, in \u001b[0;36mannotate_function..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 311\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 312\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[1;32m 313\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m TraceAnnotation(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdecorator_kwargs):\n\u001b[0;32m--> 314\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 315\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m wrapper\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/interpreters/partial_eval.py:777\u001b[0m, in \u001b[0;36mtrace_to_jaxpr_nounits\u001b[0;34m(fun, pvals, instantiate)\u001b[0m\n\u001b[1;32m 775\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m core\u001b[38;5;241m.\u001b[39mnew_main(JaxprTrace, name_stack\u001b[38;5;241m=\u001b[39mcurrent_name_stack) \u001b[38;5;28;01mas\u001b[39;00m main:\n\u001b[1;32m 776\u001b[0m fun \u001b[38;5;241m=\u001b[39m trace_to_subjaxpr_nounits(fun, main, instantiate)\n\u001b[0;32m--> 777\u001b[0m jaxpr, (out_pvals, consts, env) \u001b[38;5;241m=\u001b[39m \u001b[43mfun\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_wrapped\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpvals\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 778\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m env\n\u001b[1;32m 779\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m main, fun, env\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/linear_util.py:190\u001b[0m, in \u001b[0;36mWrappedFun.call_wrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 187\u001b[0m gen \u001b[38;5;241m=\u001b[39m gen_static_args \u001b[38;5;241m=\u001b[39m out_store \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 189\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 190\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m:\n\u001b[1;32m 192\u001b[0m \u001b[38;5;66;03m# Some transformations yield from inside context managers, so we have to\u001b[39;00m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;66;03m# interrupt them before reraising the exception. Otherwise they will only\u001b[39;00m\n\u001b[1;32m 194\u001b[0m \u001b[38;5;66;03m# get garbage-collected at some later time, running their cleanup tasks\u001b[39;00m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;66;03m# only after this exception is handled, which can corrupt the global\u001b[39;00m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;66;03m# state.\u001b[39;00m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m stack:\n", - "Cell \u001b[0;32mIn[7], line 50\u001b[0m, in \u001b[0;36mloss_fn\u001b[0;34m(params)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mloss_fn\u001b[39m(params):\n\u001b[0;32m---> 50\u001b[0m response, aux \u001b[38;5;241m=\u001b[39m \u001b[43mchallenge\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcomponent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresponse\u001b[49m\u001b[43m(\u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 51\u001b[0m loss \u001b[38;5;241m=\u001b[39m challenge\u001b[38;5;241m.\u001b[39mloss(response)\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m loss, (response, aux)\n", - "File \u001b[0;32m~/Developer/invrs-io/gym/src/invrs_gym/challenges/sorter/common.py:243\u001b[0m, in \u001b[0;36mSorterComponent.response\u001b[0;34m(self, params, wavelength, polar_angle, azimuthal_angle, expansion)\u001b[0m\n\u001b[1;32m 235\u001b[0m azimuthal_angle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msim_params\u001b[38;5;241m.\u001b[39mazimuthal_angle\n\u001b[1;32m 237\u001b[0m spec \u001b[38;5;241m=\u001b[39m dataclasses\u001b[38;5;241m.\u001b[39mreplace(\n\u001b[1;32m 238\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspec,\n\u001b[1;32m 239\u001b[0m thickness_cap\u001b[38;5;241m=\u001b[39mjnp\u001b[38;5;241m.\u001b[39masarray(params[THICKNESS_CAP]\u001b[38;5;241m.\u001b[39marray),\n\u001b[1;32m 240\u001b[0m thickness_metasurface\u001b[38;5;241m=\u001b[39mjnp\u001b[38;5;241m.\u001b[39masarray(params[THICKNESS_METASURFACE]\u001b[38;5;241m.\u001b[39marray),\n\u001b[1;32m 241\u001b[0m thickness_spacer\u001b[38;5;241m=\u001b[39mjnp\u001b[38;5;241m.\u001b[39masarray(params[THICKNESS_SPACER]\u001b[38;5;241m.\u001b[39marray),\n\u001b[1;32m 242\u001b[0m )\n\u001b[0;32m--> 243\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msimulate_sorter\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 244\u001b[0m \u001b[43m \u001b[49m\u001b[43mdensity\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m[\u001b[49m\u001b[43mDENSITY_METASURFACE\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 245\u001b[0m \u001b[43m \u001b[49m\u001b[43mspec\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mspec\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 246\u001b[0m \u001b[43m \u001b[49m\u001b[43mwavelength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43masarray\u001b[49m\u001b[43m(\u001b[49m\u001b[43mwavelength\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 247\u001b[0m \u001b[43m \u001b[49m\u001b[43mpolar_angle\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43masarray\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpolar_angle\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 248\u001b[0m \u001b[43m \u001b[49m\u001b[43mazimuthal_angle\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43masarray\u001b[49m\u001b[43m(\u001b[49m\u001b[43mazimuthal_angle\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 249\u001b[0m \u001b[43m \u001b[49m\u001b[43mexpansion\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexpansion\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 250\u001b[0m \u001b[43m \u001b[49m\u001b[43mformulation\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[43msim_params\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mformulation\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 251\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Developer/invrs-io/gym/src/invrs_gym/challenges/sorter/common.py:391\u001b[0m, in \u001b[0;36msimulate_sorter\u001b[0;34m(density, spec, wavelength, polar_angle, azimuthal_angle, expansion, formulation)\u001b[0m\n\u001b[1;32m 371\u001b[0m layer_solve_results \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 372\u001b[0m fmm\u001b[38;5;241m.\u001b[39meigensolve_isotropic_media(\n\u001b[1;32m 373\u001b[0m wavelength\u001b[38;5;241m=\u001b[39mwavelength,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m p \u001b[38;5;129;01min\u001b[39;00m permittivities\n\u001b[1;32m 381\u001b[0m ]\n\u001b[1;32m 383\u001b[0m layer_thicknesses \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 384\u001b[0m jnp\u001b[38;5;241m.\u001b[39mzeros(()), \u001b[38;5;66;03m# Ambient\u001b[39;00m\n\u001b[1;32m 385\u001b[0m jnp\u001b[38;5;241m.\u001b[39masarray(spec\u001b[38;5;241m.\u001b[39mthickness_cap),\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 388\u001b[0m jnp\u001b[38;5;241m.\u001b[39masarray(spec\u001b[38;5;241m.\u001b[39moffset_monitor_substrate), \u001b[38;5;66;03m# Substrate\u001b[39;00m\n\u001b[1;32m 389\u001b[0m ]\n\u001b[0;32m--> 391\u001b[0m s_matrix \u001b[38;5;241m=\u001b[39m \u001b[43mscattering\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstack_s_matrix\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlayer_solve_results\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlayer_thicknesses\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 393\u001b[0m n \u001b[38;5;241m=\u001b[39m expansion\u001b[38;5;241m.\u001b[39mnum_terms\n\u001b[1;32m 394\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mtuple\u001b[39m(expansion\u001b[38;5;241m.\u001b[39mbasis_coefficients[\u001b[38;5;241m0\u001b[39m, :]) \u001b[38;5;241m==\u001b[39m (\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m0\u001b[39m)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/fmmax/scattering.py:85\u001b[0m, in \u001b[0;36mstack_s_matrix\u001b[0;34m(layer_solve_results, layer_thicknesses)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mstack_s_matrix\u001b[39m(\n\u001b[1;32m 70\u001b[0m layer_solve_results: Sequence[fmm\u001b[38;5;241m.\u001b[39mLayerSolveResult],\n\u001b[1;32m 71\u001b[0m layer_thicknesses: Sequence[jnp\u001b[38;5;241m.\u001b[39mndarray],\n\u001b[1;32m 72\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ScatteringMatrix:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Computes the s-matrix for a stack of layers.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \n\u001b[1;32m 75\u001b[0m \u001b[38;5;124;03m If only a single layer is provided, the scattering matrix is just the\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m The `ScatteringMatrix`.\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 85\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_stack_s_matrices\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlayer_solve_results\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlayer_thicknesses\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/fmmax/scattering.py:174\u001b[0m, in \u001b[0;36m_stack_s_matrices\u001b[0;34m(layer_solve_results, layer_thicknesses)\u001b[0m\n\u001b[1;32m 169\u001b[0m s_matrices \u001b[38;5;241m=\u001b[39m [s_matrix]\n\u001b[1;32m 170\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m layer_solve_result, layer_thickness \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 171\u001b[0m layer_solve_results[\u001b[38;5;241m1\u001b[39m:], layer_thicknesses[\u001b[38;5;241m1\u001b[39m:]\n\u001b[1;32m 172\u001b[0m ):\n\u001b[1;32m 173\u001b[0m s_matrices\u001b[38;5;241m.\u001b[39mappend(\n\u001b[0;32m--> 174\u001b[0m \u001b[43mappend_layer\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms_matrices\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlayer_solve_result\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlayer_thickness\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 175\u001b[0m )\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mtuple\u001b[39m(s_matrices)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/fmmax/scattering.py:194\u001b[0m, in \u001b[0;36mappend_layer\u001b[0;34m(s_matrix, next_layer_solve_result, next_layer_thickness)\u001b[0m\n\u001b[1;32m 179\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mappend_layer\u001b[39m(\n\u001b[1;32m 180\u001b[0m s_matrix: ScatteringMatrix,\n\u001b[1;32m 181\u001b[0m next_layer_solve_result: fmm\u001b[38;5;241m.\u001b[39mLayerSolveResult,\n\u001b[1;32m 182\u001b[0m next_layer_thickness: jnp\u001b[38;5;241m.\u001b[39mndarray,\n\u001b[1;32m 183\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ScatteringMatrix:\n\u001b[1;32m 184\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Returns new scattering matrix for the stack with an appended layer.\u001b[39;00m\n\u001b[1;32m 185\u001b[0m \n\u001b[1;32m 186\u001b[0m \u001b[38;5;124;03m Args:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[38;5;124;03m The new `ScatteringMatrix`.\u001b[39;00m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 194\u001b[0m s11_next, s12_next, s21_next, s22_next \u001b[38;5;241m=\u001b[39m \u001b[43m_extend_s_matrix\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 195\u001b[0m \u001b[43m \u001b[49m\u001b[43ms_matrix_blocks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43ms_matrix\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43ms11\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43ms_matrix\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43ms12\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43ms_matrix\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43ms21\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43ms_matrix\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43ms22\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 196\u001b[0m \u001b[43m \u001b[49m\u001b[43mlayer_solve_result\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43ms_matrix\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend_layer_solve_result\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 197\u001b[0m \u001b[43m \u001b[49m\u001b[43mlayer_thickness\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43ms_matrix\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend_layer_thickness\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 198\u001b[0m \u001b[43m \u001b[49m\u001b[43mnext_layer_solve_result\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnext_layer_solve_result\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 199\u001b[0m \u001b[43m \u001b[49m\u001b[43mnext_layer_thickness\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnext_layer_thickness\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 200\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 201\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ScatteringMatrix(\n\u001b[1;32m 202\u001b[0m s11\u001b[38;5;241m=\u001b[39ms11_next,\n\u001b[1;32m 203\u001b[0m s12\u001b[38;5;241m=\u001b[39ms12_next,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 209\u001b[0m end_layer_thickness\u001b[38;5;241m=\u001b[39mnext_layer_thickness,\n\u001b[1;32m 210\u001b[0m )\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/fmmax/scattering.py:310\u001b[0m, in \u001b[0;36m_extend_s_matrix\u001b[0;34m(s_matrix_blocks, layer_solve_result, layer_thickness, next_layer_solve_result, next_layer_thickness)\u001b[0m\n\u001b[1;32m 308\u001b[0m \u001b[38;5;66;03m# s11_next = inv(i11 - diag(fd) @ s12 @ i21) @ diag(fd) @ s11\u001b[39;00m\n\u001b[1;32m 309\u001b[0m term3 \u001b[38;5;241m=\u001b[39m i11 \u001b[38;5;241m-\u001b[39m fd[\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m, :, jnp\u001b[38;5;241m.\u001b[39mnewaxis] \u001b[38;5;241m*\u001b[39m s12 \u001b[38;5;241m@\u001b[39m i21\n\u001b[0;32m--> 310\u001b[0m s11_next \u001b[38;5;241m=\u001b[39m \u001b[43mjnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlinalg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msolve\u001b[49m\u001b[43m(\u001b[49m\u001b[43mterm3\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfd\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnewaxis\u001b[49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m \u001b[49m\u001b[43ms11\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 311\u001b[0m \u001b[38;5;66;03m# s12_next = inv(i11 - diag(fd) @ s12 @ i21) @ (diag(fd) @ s12 @ i22 - i12) @ diag(fd_next)\u001b[39;00m\n\u001b[1;32m 312\u001b[0m s12_next \u001b[38;5;241m=\u001b[39m jnp\u001b[38;5;241m.\u001b[39mlinalg\u001b[38;5;241m.\u001b[39msolve(\n\u001b[1;32m 313\u001b[0m term3,\n\u001b[1;32m 314\u001b[0m (fd[\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m, :, jnp\u001b[38;5;241m.\u001b[39mnewaxis] \u001b[38;5;241m*\u001b[39m s12 \u001b[38;5;241m@\u001b[39m i22 \u001b[38;5;241m-\u001b[39m i12) \u001b[38;5;241m*\u001b[39m fd_next[\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m, jnp\u001b[38;5;241m.\u001b[39mnewaxis, :],\n\u001b[1;32m 315\u001b[0m )\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/pjit.py:255\u001b[0m, in \u001b[0;36m_cpp_pjit..cache_miss\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[38;5;129m@api_boundary\u001b[39m\n\u001b[1;32m 254\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcache_miss\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m--> 255\u001b[0m outs, out_flat, out_tree, args_flat, jaxpr \u001b[38;5;241m=\u001b[39m \u001b[43m_python_pjit_helper\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 256\u001b[0m \u001b[43m \u001b[49m\u001b[43mfun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minfer_params_fn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 257\u001b[0m executable \u001b[38;5;241m=\u001b[39m _read_most_recent_pjit_call_executable(jaxpr)\n\u001b[1;32m 258\u001b[0m fastpath_data \u001b[38;5;241m=\u001b[39m _get_fastpath_data(executable, out_tree, args_flat, out_flat)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/pjit.py:166\u001b[0m, in \u001b[0;36m_python_pjit_helper\u001b[0;34m(fun, infer_params_fn, *args, **kwargs)\u001b[0m\n\u001b[1;32m 164\u001b[0m dispatch\u001b[38;5;241m.\u001b[39mcheck_arg(arg)\n\u001b[1;32m 165\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 166\u001b[0m out_flat \u001b[38;5;241m=\u001b[39m \u001b[43mpjit_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs_flat\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m pxla\u001b[38;5;241m.\u001b[39mDeviceAssignmentMismatchError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 168\u001b[0m fails, \u001b[38;5;241m=\u001b[39m e\u001b[38;5;241m.\u001b[39margs\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/core.py:2604\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2600\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2601\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2602\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2603\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2604\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/core.py:389\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 388\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[0;32m--> 389\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/interpreters/ad.py:316\u001b[0m, in \u001b[0;36mJVPTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 314\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDifferentiation rule for \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mprimitive\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m not implemented\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 315\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(msg)\n\u001b[0;32m--> 316\u001b[0m primal_out, tangent_out \u001b[38;5;241m=\u001b[39m \u001b[43mjvp\u001b[49m\u001b[43m(\u001b[49m\u001b[43mprimals_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtangents_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 317\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m primitive\u001b[38;5;241m.\u001b[39mmultiple_results:\n\u001b[1;32m 318\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m [JVPTracer(\u001b[38;5;28mself\u001b[39m, x, t) \u001b[38;5;28;01mfor\u001b[39;00m x, t \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(primal_out, tangent_out)]\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/pjit.py:1501\u001b[0m, in \u001b[0;36m_pjit_jvp\u001b[0;34m(primals_in, tangents_in, jaxpr, in_shardings, out_shardings, resource_env, donated_invars, name, keep_unused, inline)\u001b[0m\n\u001b[1;32m 1499\u001b[0m _filter_zeros_in \u001b[38;5;241m=\u001b[39m partial(_filter_zeros, is_nz_tangents_in)\n\u001b[1;32m 1500\u001b[0m _filter_zeros_out \u001b[38;5;241m=\u001b[39m partial(_filter_zeros, is_nz_tangents_out)\n\u001b[0;32m-> 1501\u001b[0m outputs \u001b[38;5;241m=\u001b[39m \u001b[43mpjit_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1502\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mprimals_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m_filter_zeros_in\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtangents_in\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1503\u001b[0m \u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr_jvp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1504\u001b[0m \u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m_filter_zeros_in\u001b[49m\u001b[43m(\u001b[49m\u001b[43min_shardings\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1505\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m_filter_zeros_out\u001b[49m\u001b[43m(\u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1506\u001b[0m \u001b[43m \u001b[49m\u001b[43mresource_env\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresource_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1507\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m_filter_zeros_in\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1508\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1510\u001b[0m \u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minline\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1512\u001b[0m primals_out, tangents_out \u001b[38;5;241m=\u001b[39m split_list(outputs, [\u001b[38;5;28mlen\u001b[39m(jaxpr\u001b[38;5;241m.\u001b[39mjaxpr\u001b[38;5;241m.\u001b[39moutvars)])\n\u001b[1;32m 1513\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(primals_out) \u001b[38;5;241m==\u001b[39m \u001b[38;5;28mlen\u001b[39m(jaxpr\u001b[38;5;241m.\u001b[39mjaxpr\u001b[38;5;241m.\u001b[39moutvars)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/core.py:2604\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2600\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2601\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2602\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2603\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2604\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/core.py:389\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 388\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[0;32m--> 389\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/interpreters/partial_eval.py:213\u001b[0m, in \u001b[0;36mJaxprTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprocess_primitive\u001b[39m(\u001b[38;5;28mself\u001b[39m, primitive, tracers, params):\n\u001b[1;32m 212\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m primitive \u001b[38;5;129;01min\u001b[39;00m custom_partial_eval_rules:\n\u001b[0;32m--> 213\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcustom_partial_eval_rules\u001b[49m\u001b[43m[\u001b[49m\u001b[43mprimitive\u001b[49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mtracers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 214\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 215\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefault_process_primitive(primitive, tracers, params)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/pjit.py:1580\u001b[0m, in \u001b[0;36m_pjit_partial_eval\u001b[0;34m(trace, jaxpr, in_shardings, out_shardings, resource_env, donated_invars, name, keep_unused, inline, *in_tracers)\u001b[0m\n\u001b[1;32m 1578\u001b[0m \u001b[38;5;66;03m# Bind known things to pjit_p.\u001b[39;00m\n\u001b[1;32m 1579\u001b[0m known_inputs \u001b[38;5;241m=\u001b[39m [pv\u001b[38;5;241m.\u001b[39mget_known() \u001b[38;5;28;01mfor\u001b[39;00m pv \u001b[38;5;129;01min\u001b[39;00m in_pvals \u001b[38;5;28;01mif\u001b[39;00m pv\u001b[38;5;241m.\u001b[39mis_known()]\n\u001b[0;32m-> 1580\u001b[0m all_known_outs \u001b[38;5;241m=\u001b[39m \u001b[43mpjit_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mknown_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mknown_params\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1582\u001b[0m known_outs_iter \u001b[38;5;241m=\u001b[39m \u001b[38;5;28miter\u001b[39m(all_known_outs)\n\u001b[1;32m 1583\u001b[0m all_known_outs \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mnext\u001b[39m(known_outs_iter)\n\u001b[1;32m 1584\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m fwd_idx \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m known_inputs[fwd_idx]\n\u001b[1;32m 1585\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m fwd_idx \u001b[38;5;129;01min\u001b[39;00m fwds_known]\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/core.py:2604\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2600\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2601\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2602\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2603\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2604\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/core.py:389\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 388\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[0;32m--> 389\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/core.py:821\u001b[0m, in \u001b[0;36mEvalTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 820\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprocess_primitive\u001b[39m(\u001b[38;5;28mself\u001b[39m, primitive, tracers, params):\n\u001b[0;32m--> 821\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mprimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mimpl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mtracers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/invrs/lib/python3.10/site-packages/jax/_src/pjit.py:1214\u001b[0m, in \u001b[0;36m_pjit_call_impl\u001b[0;34m(jaxpr, in_shardings, out_shardings, resource_env, donated_invars, name, keep_unused, inline, *args)\u001b[0m\n\u001b[1;32m 1211\u001b[0m donated_argnums \u001b[38;5;241m=\u001b[39m [i \u001b[38;5;28;01mfor\u001b[39;00m i, d \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(donated_invars) \u001b[38;5;28;01mif\u001b[39;00m d]\n\u001b[1;32m 1212\u001b[0m has_explicit_sharding \u001b[38;5;241m=\u001b[39m _pjit_explicit_sharding(\n\u001b[1;32m 1213\u001b[0m in_shardings, out_shardings, \u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[0;32m-> 1214\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mxc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_xla\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpjit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcall_impl_cache_miss\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdonated_argnums\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1215\u001b[0m \u001b[43m \u001b[49m\u001b[43mtree_util\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdispatch_registry\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1216\u001b[0m \u001b[43m \u001b[49m\u001b[43m_get_cpp_global_cache\u001b[49m\u001b[43m(\u001b[49m\u001b[43mhas_explicit_sharding\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "from totypes import types\n", "from importlib import reload\n", @@ -290,30 +181,10 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "id": "b22afb41-a151-40bc-98c2-80b572ab9bbc", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "BoundedArray(array=Array(1.1735129, dtype=float32), lower_bound=0.0, upper_bound=0.3)\n", - "BoundedArray(array=Array(4.8387637, dtype=float32), lower_bound=0.05, upper_bound=0.3)\n", - "BoundedArray(array=Array(0.50665265, dtype=float32), lower_bound=0.5, upper_bound=1.2)\n" - ] - }, - { - "data": { - "image/png": "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//zzsWvXLuzduxcvfvGL8fWvf71qY90c3XjjjUe034/UdwB46UtfutKvZz/72dU1x9uYA1i73okIN910k19zrMZ8pO9d2pag4Q//8A/x6le/Gm984xvx+c9/HhdeeCEuu+wyfOMb3zjWXQMAfPzjH8e1116Lz3zmM7jllluwXC7xrGc9CwcOHKiue9nLXoZ77rnHX295y1uOUY9r+nt/7+9V/frUpz7l373qVa/Cf/tv/w3ve9/78PGPfxxf//rX8bznPe8Y9lbos5/9bNXnW265BQDwghe8wK85Hsb7wIEDuPDCC/E7v/M7a79/y1vegt/+7d/GO97xDtx2223YtWsXLrvsMmxubvo1V111Ff73//7fuOWWW/DBD34Qn/jEJ3DNNdccs34fPHgQn//85/H6178en//85/H+978f+/btw3Oe85yVa6+//vpqDv71v/7XR7Tfj9R3o2c/+9lVv/7gD/6g+v54G3MAVX/vuecevOtd7wIR4fnPf3513bEY85G+h4m3If3Ij/wIX3vttf533/e8d+9evuGGG45hr7amb3zjGwyAP/7xj/tnP/ETP8GveMUrjl2ntqA3vvGNfOGFF6797v777+fJZMLve9/7/LO//Mu/ZAB86623HqUePjp6xStewU984hM558zMx+d4A+A//uM/9r9zzrxnzx6+6aab/LP777+fZ7MZ/8Ef/AEzM//FX/wFA+DPfvazfs2f/dmfMRHx3/zN3xyTfq+jP//zP2cA/JWvfMU/O+ecc/htb3vbke3cI9C6vr/kJS/h5z73uVv+ZruM+XOf+1z+x//4H1efHQ9jPtL3Fm07TcNiscDtt9+OSy+91D9LKeHSSy/Frbfeegx7tjU98MADAIBTTjml+vz3f//3cdppp+GpT30qXvva1+LgwYPHonsr9OUvfxl79+7Feeedh6uuugpf/epXAQC33347lstlNfZPecpTcPbZZx9XY79YLPB7v/d7+Nmf/VkQkX9+vI630d1334177723Gt/du3fj4osv9vG99dZbcfLJJ+Pv//2/79dceumlSCnhtttuO+p93ooeeOABEBFOPvnk6vMbb7wRp556Kn74h38YN910E7quOzYdHNDHPvYxnH766Xjyk5+Ml7/85fjmN7/p322HMb/vvvvwJ3/yJ7j66qtXvjtex3yk7Unbrsrl//2//xd93+OMM86oPj/jjDPwV3/1V8eoV1tTzhmvfOUr8Y/+0T/CU5/6VP/8RS96Ec455xzs3bsXX/ziF3Hddddh3759eP/7338MewtcfPHFePe7340nP/nJuOeee/DmN78ZP/7jP44vfelLuPfeezGdTlcYwRlnnIF777332HR4Dd188824//778dKXvtQ/O17HO5KN4bq1bd/de++9OP3006vv27bFKaecctzMwebmJq677jpceeWVVdXFX/qlX8LTnvY0nHLKKfj0pz+N1772tbjnnnvw1re+9Rj2VkwTz3ve83Duuefirrvuwq/+6q/i8ssvx6233oqmabbFmL/nPe/BiSeeuGIqPF7HfKTtS9sONGw3uvbaa/GlL32p8gsAUNlDzz//fJx55pl45jOfibvuugtPfOITj3Y3nS6//HL//wUXXICLL74Y55xzDv7oj/4IO3bsOGb9eiz0zne+E5dffjn27t3rnx2v4/29RsvlEv/sn/0zMDPe/va3V9+9+tWv9v9fcMEFmE6n+Lmf+znccMMNx7Ruws/8zM/4/88//3xccMEFeOITn4iPfexjeOYzn3nM+vVY6F3veheuuuqqlTLQx+uYj7R9aduZJ0477TQ0TbPisX/fffdhz549x6hX6+kXf/EX8cEPfhAf/ehH8f3f//0Pe+3FF18MALjzzjuPRtceNZ188sn4gR/4Adx5553Ys2cPFosF7r///uqa42nsv/KVr+BDH/oQ/tW/+lcPe93xON42hg+3tvfs2bPi8Nt1Hb71rW8d8zkwwPCVr3wFt9xyS6VlWEcXX3wxuq7DX//1Xx+dDj5KOu+883Daaaf52jiexxwAPvnJT2Lfvn2PuOaB43fMR9o+tO1Aw3Q6xUUXXYQPf/jD/lnOGR/+8IdxySWXHMOeFWJm/OIv/iL++I//GB/5yEdw7rnnPuJv7rjjDgDAmWeeeYR799jooYcewl133YUzzzwTF110ESaTSTX2+/btw1e/+tXjZux/93d/F6effjp+6qd+6mGvOx7H+9xzz8WePXuq8d2/fz9uu+02H99LLrkE999/P26//Xa/5iMf+Qhyzg6EjgUZYPjyl7+MD33oQzj11FMf8Td33HEHUkorqv9jTf/n//wffPOb3/S1cbyOudE73/lOXHTRRbjwwgsf8drjdcxH2kZ0rD0xvxN673vfy7PZjN/97nfzX/zFX/A111zDJ598Mt97773HumvMzPzyl7+cd+/ezR/72Mf4nnvu8dfBgweZmfnOO+/k66+/nj/3uc/x3XffzR/4wAf4vPPO46c//enHuOfMr3nNa/hjH/sY33333fy//tf/4ksvvZRPO+00/sY3vsHMzD//8z/PZ599Nn/kIx/hz33uc3zJJZfwJZdccox7LdT3PZ999tl83XXXVZ8fT+P94IMP8he+8AX+whe+wAD4rW99K3/hC1/wKIMbb7yRTz75ZP7ABz7AX/ziF/m5z30un3vuuXzo0CFv49nPfjb/8A//MN922238qU99ip/0pCfxlVdeecz6vVgs+DnPeQ5///d/P99xxx3Vmp/P58zM/OlPf5rf9ra38R133MF33XUX/97v/R4//vGP5xe/+MVHtN+P1PcHH3yQf/mXf5lvvfVWvvvuu/lDH/oQP+1pT+MnPelJvLm56W0cb2Nu9MADD/DOnTv57W9/+8rvj+WYj/S9S9sSNDAz/4f/8B/47LPP5ul0yj/yIz/Cn/nMZ451l5wArH397u/+LjMzf/WrX+WnP/3pfMopp/BsNuO/83f+Dv/Kr/wKP/DAA8e248z8whe+kM8880yeTqf8fd/3ffzCF76Q77zzTv/+0KFD/Au/8Av8uMc9jnfu3Mn/5J/8E77nnnuOYY8L/Y//8T8YAO/bt6/6/Hga749+9KNr18ZLXvISZpawy9e//vV8xhln8Gw242c+85krz/PNb36Tr7zySj7hhBP4pJNO4n/5L/8lP/jgg8es33ffffeWa/6jH/0oMzPffvvtfPHFF/Pu3bt5Y2ODf/AHf5B/8zd/s2LMx6LvBw8e5Gc961n8+Mc/nieTCZ9zzjn8spe9bEUAOd7G3Og//sf/yDt27OD7779/5ffHcsxH+t4lYmY+oqqMkUYaaaSRRhrpe4K2nU/DSCONNNJII410bGgEDSONNNJII4000qOiETSMNNJII4000kiPikbQMNJII4000kgjPSoaQcNII4000kgjjfSoaAQNI4000kgjjTTSo6IRNIw00kgjjTTSSI+KRtAw0kgjjTTSSCM9KhpBw0gjjTTSSCON9KhoBA0jjTTSSCONNNKjohE0jDTSSCONNNJIj4r+f7APNTiVcp04AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.imshow(grad[\"density_metasurface\"].array)\n", "plt.colorbar()\n", @@ -324,22 +195,10 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "id": "d502e53a-4349-4a73-85b2-a52f70d577e6", "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'fields' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[53], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m jax\u001b[38;5;241m.\u001b[39mensure_compile_time_eval():\n\u001b[0;32m----> 2\u001b[0m sz_fwd_N, sz_bwd_N \u001b[38;5;241m=\u001b[39m \u001b[43mfields\u001b[49m\u001b[38;5;241m.\u001b[39mamplitude_poynting_flux(\n\u001b[1;32m 3\u001b[0m forward_amplitude\u001b[38;5;241m=\u001b[39mfwd_substrate_offset,\n\u001b[1;32m 4\u001b[0m backward_amplitude\u001b[38;5;241m=\u001b[39mbwd_substrate_offset,\n\u001b[1;32m 5\u001b[0m layer_solve_result\u001b[38;5;241m=\u001b[39mlayer_solve_results[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m],\n\u001b[1;32m 6\u001b[0m )\n\u001b[1;32m 8\u001b[0m sz_fwd_substrate_sum \u001b[38;5;241m=\u001b[39m jnp\u001b[38;5;241m.\u001b[39msum(jnp\u001b[38;5;241m.\u001b[39mabs(sz_fwd_N), axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 9\u001b[0m sz_bwd_substrate_sum \u001b[38;5;241m=\u001b[39m jnp\u001b[38;5;241m.\u001b[39msum(jnp\u001b[38;5;241m.\u001b[39mabs(sz_bwd_N), axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m2\u001b[39m)\n", - "\u001b[0;31mNameError\u001b[0m: name 'fields' is not defined" - ] - } - ], + "outputs": [], "source": [ " with jax.ensure_compile_time_eval():\n", " sz_fwd_N, sz_bwd_N = fields.amplitude_poynting_flux(\n", @@ -363,33 +222,10 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": null, "id": "7ac64ebe-5c83-4aaa-ac80-107198eb6274", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Density2DArray(array=Array([[6.1960541e-06, 6.2404361e-06, 6.2450090e-06, ..., 5.9067233e-06,\n", - " 6.0204711e-06, 6.1197052e-06],\n", - " [5.9867971e-06, 6.0404823e-06, 6.0578741e-06, ..., 5.6974986e-06,\n", - " 5.8058195e-06, 5.9052841e-06],\n", - " [5.8268079e-06, 5.8872461e-06, 5.9144804e-06, ..., 5.5411469e-06,\n", - " 5.6437184e-06, 5.7421435e-06],\n", - " ...,\n", - " [6.7929009e-06, 6.8064141e-06, 6.7734909e-06, ..., 6.5359432e-06,\n", - " 6.6514890e-06, 6.7390661e-06],\n", - " [6.6297735e-06, 6.6529069e-06, 6.6306920e-06, ..., 6.3563402e-06,\n", - " 6.4745445e-06, 6.5678810e-06],\n", - " [6.4217807e-06, 6.4555375e-06, 6.4462665e-06, ..., 6.1375058e-06,\n", - " 6.2549270e-06, 6.3521825e-06]], dtype=float32), lower_bound=0, upper_bound=1e-05, fixed_solid=None, fixed_void=None, minimum_width=8, minimum_spacing=8, periodic=(True, True), symmetries=())" - ] - }, - "execution_count": 103, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from jax import tree_util\n", "from totypes import types\n", @@ -415,67 +251,20 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": null, "id": "ec46adbb-9583-4a6e-85bd-fac31f5e98bb", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'density_metasurface': Density2DArray(array=Array([[9.466157e-06, 9.130918e-06, 9.014729e-06, ..., 1.000000e-05,\n", - " 9.992997e-06, 1.000000e-05],\n", - " [1.000000e-05, 1.000000e-05, 1.000000e-05, ..., 1.000000e-05,\n", - " 1.000000e-05, 1.000000e-05],\n", - " [9.866250e-06, 8.957101e-06, 8.902918e-06, ..., 1.000000e-05,\n", - " 1.000000e-05, 1.000000e-05],\n", - " ...,\n", - " [9.961852e-06, 9.961814e-06, 9.968689e-06, ..., 9.995907e-06,\n", - " 9.984004e-06, 9.967230e-06],\n", - " [9.970883e-06, 9.880925e-06, 9.200170e-06, ..., 1.000000e-05,\n", - " 9.988348e-06, 9.972360e-06],\n", - " [1.000000e-05, 9.880201e-06, 8.942704e-06, ..., 1.000000e-05,\n", - " 9.987215e-06, 9.986404e-06]], dtype=float32), lower_bound=0, upper_bound=1e-05, fixed_solid=None, fixed_void=None, minimum_width=8, minimum_spacing=8, periodic=(True, True), symmetries=()),\n", - " 'thickness_cap': BoundedArray(array=Array(2.0774539, dtype=float32), lower_bound=0, upper_bound=None),\n", - " 'thickness_metasurface': BoundedArray(array=Array(0.08637231, dtype=float32), lower_bound=0, upper_bound=None),\n", - " 'thickness_spacer': BoundedArray(array=Array(0.95887667, dtype=float32), lower_bound=0, upper_bound=None)}" - ] - }, - "execution_count": 89, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "params" ] }, { "cell_type": "code", - "execution_count": 284, + "execution_count": null, "id": "25d97a2d-7ad3-4a85-a34c-6dff0718b1d2", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 284, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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e+/po48+CutPtEjSgAEDdNVVV6mqqipK3Z3ZoEGDNHr06JA99KS1lqTa2lpt2bJF9913X1jzesJaS/KvWzhr+lMeI9FyKrRqa2u1efPmsP+0xpnub11h5MiRGjx4cMgeetJ6S9LHH3+sAwcOhH2fl3rGev+vXhNcAwcO1MSJE1VaWurf19HRodLS0oD/Y/5faWlpAfWStHnz5pD10WCM0aJFi7Rx40Z9+OGHGjFiRNjnaG9v1759+5SUlBSFDn+c5uZmVVdXh+yhJ6z1/1q7dq2GDh2qW2+9Nax5PWGtJWnEiBFKTEwMWFOfz6dPP/005Jr+lMdINJwKrYMHD2rLli264IILwj7Hme5vXaG+vl7Hjx8P2UNPWe9TXnvtNU2cOFEpKSlhz+0J6x2gu68OiaS33nrLOJ1OU1hYaP75z3+aBx54wAwaNMh4PB5jjDG//vWvzWOPPeav/+STT0xMTIz5wx/+YL788kuzfPlyM2DAALNv374u63nBggXG5XKZsrIyc+TIEf/49ttv/TU/7Pupp54yH3zwgamurjZ79uwxd999t4mNjTVffPFFl/X9yCOPmLKyMlNTU2M++eQTk56ebgYPHmyOHj0atOeesNantLe3m4svvtgsWbLktGM9aa2bmprM3r17zd69e40k88ILL5i9e/f6r777/e9/bwYNGmSKi4vN559/brKyssyIESPMf/7zH/85brrpJvPyyy/7t8/0GIl23ydPnjS33Xabueiii0xlZWXAfb61tTVk32e6v0W776amJrN48WJTXl5uampqzJYtW8zVV19tLr30UnPixImQfXf3ep/i9XrNz372M7N69eqg5+iO9T4bvSq4jDHm5ZdfNhdffLEZOHCgmTRpktm5c6f/2I033mhyc3MD6t9++20zevRoM3DgQDNu3Djz/vvvd2m/koKOtWvXhuz74Ycf9t/GhIQE84tf/MJUVFR0ad+zZ882SUlJZuDAgebCCy80s2fPNlVVVSF7Nqb71/qUDz74wEgyBw4cOO1YT1rrjz76KOh941R/HR0d5sknnzQJCQnG6XSa6dOnn3abhg0bZpYvXx6wr7PHSLT7rqmpCXmf/+ijj0L2fab7W7T7/vbbb80tt9xihgwZYgYMGGCGDRtm7r///tMCqKet9ymvvvqqOeecc0xjY2PQc3THep8N/qwJAMAqveY9LgBA30BwAQCsQnABAKxCcAEArEJwAQCsQnABAKxCcAEArEJwAQCsQnABAKxCcAEArEJwAQCsQnABAKzy/wBQUFTIrDEe5gAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "array = onp.zeros((20, 20))\n", "array[5, :10] = 1\n", diff --git a/src/invrs_gym/challenges/sorter/common.py b/src/invrs_gym/challenges/sorter/common.py index 7120092..f5a9788 100644 --- a/src/invrs_gym/challenges/sorter/common.py +++ b/src/invrs_gym/challenges/sorter/common.py @@ -23,6 +23,11 @@ THICKNESS_METASURFACE = "thickness_metasurface" THICKNESS_SPACER = "thickness_spacer" +EFIELD = "efield" +HFIELD = "hfield" +POYNTING_FLUX_Z = "poynting_flux_z" +COORDINATES = "coordinates" + DENSITY_LOWER_BOUND = 0.0 DENSITY_UPPER_BOUND = 1.0 @@ -53,9 +58,9 @@ class SorterSpec: permittivity_spacer: complex permittivity_substrate: complex - thickness_cap: float | jnp.ndarray - thickness_metasurface: float | jnp.ndarray - thickness_spacer: float | jnp.ndarray + thickness_cap: types.BoundedArray + thickness_metasurface: types.BoundedArray + thickness_spacer: types.BoundedArray pitch: float @@ -150,7 +155,7 @@ def __init__( self.sim_params = sim_params self.thickness_initializer = thickness_initializer self.density_initializer = density_initializer - self.grid_shape = (divide_and_round(spec.pitch, sim_params.grid_spacing),) * 2 + self.grid_shape = (_divide_and_round(spec.pitch, sim_params.grid_spacing),) * 2 self.seed_density = seed_density( grid_shape=self.grid_shape, **seed_density_kwargs @@ -174,31 +179,16 @@ def init(self, key: jax.Array) -> Params: ) = jax.random.split(key, 4) params = { THICKNESS_CAP: self.thickness_initializer( - key_thickness_cap, - types.BoundedArray( - self.spec.thickness_cap, - lower_bound=0.0, - upper_bound=None, - ), + key_thickness_cap, self.spec.thickness_cap ), THICKNESS_METASURFACE: self.thickness_initializer( - key_thickness_metasurface, - types.BoundedArray( - self.spec.thickness_metasurface, - lower_bound=0.0, - upper_bound=None, - ), + key_thickness_metasurface, self.spec.thickness_metasurface ), DENSITY_METASURFACE: self.density_initializer( key_density_metasurface, self.seed_density ), THICKNESS_SPACER: self.thickness_initializer( - key_thickness_spacer, - types.BoundedArray( - self.spec.thickness_spacer, - lower_bound=0.0, - upper_bound=None, - ), + key_thickness_spacer, self.spec.thickness_spacer ), } # Ensure that there are no weak types in the initial parameters. @@ -244,7 +234,7 @@ def response( thickness_spacer=jnp.asarray(params[THICKNESS_SPACER].array), ) return simulate_sorter( - density_array=jnp.asarray(params[DENSITY_METASURFACE].array), + density=params[DENSITY_METASURFACE], # type: ignore[arg-type] spec=spec, wavelength=jnp.asarray(wavelength), polar_angle=jnp.asarray(polar_angle), @@ -254,7 +244,7 @@ def response( ) -def divide_and_round(a: float, b: float) -> int: +def _divide_and_round(a: float, b: float) -> int: """Checks that `a` is nearly evenly divisible by `b`, and returns `a / b`.""" result = int(jnp.around(a / b)) if not jnp.isclose(a / b, result): @@ -297,7 +287,7 @@ def seed_density(grid_shape: Tuple[int, int], **kwargs: Any) -> types.Density2DA def simulate_sorter( - density_array: jnp.ndarray, + density: types.Density2DArray, spec: SorterSpec, wavelength: jnp.ndarray, polar_angle: jnp.ndarray, @@ -310,8 +300,9 @@ def simulate_sorter( This code is adapted from the fmmax.examples.sorter script. The sorter consists of a metasurface layer situated above a quad of pixels. - Above the metasurface is a cap, and it is separated from the substrate by a - spacer layer, as illustrated below. + Each pixel is square in shape, and includes a circular "target" region in + its interior. Above the metasurface is a cap, and it is separated from the + substrate by a spacer layer, as illustrated below. __________________________ / /| @@ -334,7 +325,7 @@ def simulate_sorter( the x, y, x + y, and x - y directions, respectively. Args: - density_array: Defines the pattern of the metasurface layer. + density: Defines the pattern of the metasurface layer. spec: Defines the physical specification of the sorter. wavelength: The wavelength of the excitation. polar_angle: The polar angle of the excitation. @@ -346,7 +337,7 @@ def simulate_sorter( The `SorterResponse`, and an auxilliary dictionary containing the fields at the monitor plane. """ - + density_array = _density_array(density) primitive_lattice_vectors = basis.LatticeVectors( u=spec.pitch * basis.X, v=spec.pitch * basis.Y, @@ -355,7 +346,7 @@ def simulate_sorter( wavelength=wavelength, polar_angle=polar_angle, azimuthal_angle=azimuthal_angle, - permittivity=spec.permittivity_ambient, + permittivity=jnp.asarray(spec.permittivity_ambient), ) permittivities = [ @@ -396,32 +387,35 @@ def simulate_sorter( assert tuple(expansion.basis_coefficients[0, :]) == (0, 0) assert expansion.basis_coefficients.shape[0] == n - # Generate wave amplitudes for forward-going waves in the ambient with four - # different polarizations: x, y, (x + y) / sqrt(2), and (x - y) / sqrt(2). - fwd_amplitude_0_start = jnp.zeros((2 * n, 4), dtype=complex) - fwd_amplitude_0_start = fwd_amplitude_0_start.at[0, 0].set(1) - fwd_amplitude_0_start = fwd_amplitude_0_start.at[0, 1].set(1 / jnp.sqrt(2)) - fwd_amplitude_0_start = fwd_amplitude_0_start.at[n, 1].set(1 / jnp.sqrt(2)) - fwd_amplitude_0_start = fwd_amplitude_0_start.at[0, 2].set(1 / jnp.sqrt(2)) - fwd_amplitude_0_start = fwd_amplitude_0_start.at[n, 2].set(-1 / jnp.sqrt(2)) - fwd_amplitude_0_start = fwd_amplitude_0_start.at[n, 3].set(1) + # Generate wave amplitudes for forward-going waves at the start of the in + # the ambient with four different polarizations: x, y, (x + y) / sqrt(2), + # and (x - y) / sqrt(2). + fwd_ambient_start = jnp.zeros((2 * n, 4), dtype=complex) + fwd_ambient_start = fwd_ambient_start.at[0, 0].set(1) + fwd_ambient_start = fwd_ambient_start.at[0, 1].set(1 / jnp.sqrt(2)) + fwd_ambient_start = fwd_ambient_start.at[n, 1].set(1 / jnp.sqrt(2)) + fwd_ambient_start = fwd_ambient_start.at[0, 2].set(1 / jnp.sqrt(2)) + fwd_ambient_start = fwd_ambient_start.at[n, 2].set(-1 / jnp.sqrt(2)) + fwd_ambient_start = fwd_ambient_start.at[n, 3].set(1) # Compute the backward-going wave amplitudes at the start of the ambient. Since # the ambient has zero thickness, the fields at the start and end are colocated. - bwd_amplitude_0_end = s_matrix.s21 @ fwd_amplitude_0_start - sz_fwd_0, sz_bwd_0 = fields.amplitude_poynting_flux( - fwd_amplitude_0_start, bwd_amplitude_0_end, layer_solve_results[0] + bwd_ambient_end = s_matrix.s21 @ fwd_ambient_start + sz_fwd_ambient, sz_bwd_ambient = fields.amplitude_poynting_flux( + forward_amplitude=fwd_ambient_start, + backward_amplitude=bwd_ambient_end, + layer_solve_result=layer_solve_results[0], ) - sz_fwd_ambient_sum = jnp.sum(jnp.abs(sz_fwd_0), axis=-2) - sz_bwd_ambient_sum = jnp.sum(jnp.abs(sz_bwd_0), axis=-2) + sz_fwd_ambient_sum = jnp.sum(jnp.abs(sz_fwd_ambient), axis=-2) + sz_bwd_ambient_sum = jnp.sum(jnp.abs(sz_bwd_ambient), axis=-2) reflection = jnp.abs(sz_bwd_ambient_sum) / jnp.abs(sz_fwd_ambient_sum) # Compute the forward-going and backward-going wave amplitudes in the substrate, # a distance `spec.offset_monitor_substrate` from the start of the substrate. - fwd_amplitude_N_start = s_matrix.s11 @ fwd_amplitude_0_start - fwd_amplitude_N_offset, bwd_amplitude_N_offset = fields.colocate_amplitudes( - fwd_amplitude_N_start, - jnp.zeros_like(fwd_amplitude_N_start), + fwd_substrate_start = s_matrix.s11 @ fwd_ambient_start + fwd_substrate_offset, bwd_substrate_offset = fields.colocate_amplitudes( + fwd_substrate_start, + jnp.zeros_like(fwd_substrate_start), z_offset=layer_thicknesses[-1], layer_solve_result=layer_solve_results[-1], layer_thickness=layer_thicknesses[-1], @@ -430,11 +424,11 @@ def simulate_sorter( # Compute electric and magnetic fields at the monitor plane in their Fourier # representation, and then on the real-space grid. ef, hf = fields.fields_from_wave_amplitudes( - fwd_amplitude_N_offset, - bwd_amplitude_N_offset, + forward_amplitude=fwd_substrate_offset, + backward_amplitude=bwd_substrate_offset, layer_solve_result=layer_solve_results[-1], ) - grid_shape = density_array.shape[-2:] + grid_shape: Tuple[int, int] = density_array.shape[-2:] # type: ignore[assignment] (ex, ey, ez), (hx, hy, hz), (x, y) = fields.fields_on_grid( electric_field=ef, magnetic_field=hf, @@ -449,20 +443,16 @@ def simulate_sorter( sz = _time_average_z_poynting_flux((ex, ey, ez), (hx, hy, hz)) assert sz.shape == batch_shape + grid_shape + (4,) - # Create masks selecting the four quadrants. - mask = jnp.zeros(grid_shape + (1, 4)) - xdim = grid_shape[0] // 2 - ydim = grid_shape[1] // 2 - mask = mask.at[:xdim, :ydim, 0, 0].set(1) - mask = mask.at[:xdim, ydim:, 0, 1].set(1) - mask = mask.at[xdim:, :ydim, 0, 2].set(1) - mask = mask.at[xdim:, ydim:, 0, 3].set(1) + # Create masks selecting the four quadrants, and the circular target regions. + quadrant_mask = _quadrant_mask(grid_shape) + assert quadrant_mask.shape == grid_shape + (1, 4) # Use the mask to compute the time average Poynting flux into each quadrant. The # trailing two dimensions have shape `(4, 4)`; index `(i, j)` corresponds to # power for the `i` excitation (i.e. polarization) in the `j` quadrant. - quadrant_sz = jnp.mean(mask * sz[..., jnp.newaxis], axis=(-4, -3)) + quadrant_sz = jnp.mean(quadrant_mask * sz[..., jnp.newaxis], axis=(-4, -3)) quadrant_sz /= sz_fwd_ambient_sum[..., jnp.newaxis] + assert quadrant_sz.shape == batch_shape + (4, 4) response = SorterResponse( @@ -474,9 +464,10 @@ def simulate_sorter( ) aux = { - "efield": (ex, ey, ez), - "hfield": (hx, hy, hz), - "coordinates": (x, y), + EFIELD: (ex, ey, ez), + HFIELD: (hx, hy, hz), + POYNTING_FLUX_Z: sz, + COORDINATES: (x, y), } return response, aux @@ -490,3 +481,22 @@ def _time_average_z_poynting_flux( ex, ey, _ = electric_fields hx, hy, _ = magnetic_fields return jnp.real(ex * jnp.conj(hy) - ey * jnp.conj(hx)) + + +def _density_array(density: types.Density2DArray) -> jnp.ndarray: + """Return the density array with appropriate scaling.""" + array = density.array - density.lower_bound + array /= density.upper_bound - density.lower_bound + array *= DENSITY_UPPER_BOUND - DENSITY_LOWER_BOUND + return jnp.asarray(array + DENSITY_LOWER_BOUND) + + +def _quadrant_mask(grid_shape: Tuple[int, int]) -> jnp.ndarray: + quadrant_mask = jnp.zeros(grid_shape + (1, 4)) + xdim = grid_shape[0] // 2 + ydim = grid_shape[1] // 2 + quadrant_mask = quadrant_mask.at[:xdim, :ydim, 0, 0].set(1) + quadrant_mask = quadrant_mask.at[:xdim, ydim:, 0, 1].set(1) + quadrant_mask = quadrant_mask.at[xdim:, :ydim, 0, 2].set(1) + quadrant_mask = quadrant_mask.at[xdim:, ydim:, 0, 3].set(1) + return quadrant_mask diff --git a/src/invrs_gym/challenges/sorter/polarization_challenge.py b/src/invrs_gym/challenges/sorter/polarization_challenge.py index e69de29..5cfd566 100644 --- a/src/invrs_gym/challenges/sorter/polarization_challenge.py +++ b/src/invrs_gym/challenges/sorter/polarization_challenge.py @@ -0,0 +1,174 @@ +"""Defines the photon extractor challenge. + +Copyright (c) 2023 The INVRS-IO authors. +""" + +import dataclasses +import functools + +from fmmax import basis, fmm # type: ignore[import-untyped] +from jax import nn +from jax import numpy as jnp +from totypes import types + +from invrs_gym.challenges import base +from invrs_gym.challenges.sorter import common +from invrs_gym.utils import initializers + +POLARIZATION_RATIO_MIN = "polarization_ratio_min" +POLARIZATION_RATIO_MEAN = "polarization_ratio_mean" +EFFICIENCY_MIN = "efficiency_min" +EFFICIENCY_MEAN = "efficiency_mean" + + +density_initializer = functools.partial( + initializers.noisy_density_initializer, + relative_mean=0.5, + relative_noise_amplitude=0.1, +) + + +@dataclasses.dataclass +class PolarizationSorterChallenge(base.Challenge): + """Defines the polarization sorter challenge. + + The target of the polarization sorter challenge is to achieve coupling into target + + """ + + component: common.SorterComponent + efficiency_target: float + polarization_ratio_target: float + + def loss(self, response: common.SorterResponse) -> jnp.ndarray: + """Compute a scalar loss from the component `response`.""" + # Include a loss term that penalizes unphysical results, which can help prevent + # an optimizer from exploiting inaccuracies in the simulation when the number + # of Fourier orders is insufficient. + total_power = response.reflection + jnp.sum(response.transmission, axis=-1) + excess_power = nn.relu(total_power - 1) + excess_power_loss = 10 * jnp.sum(excess_power**2) + + ideal_transmission = jnp.asarray( + [ + # Q1, Q2, Q3, Q4 + [0.50, 0.25, 0.25, 0.00], # x + [0.25, 0.50, 0.00, 0.25], # (x + y) / sqrt(2) + [0.25, 0.00, 0.50, 0.25], # (x - y) / sqrt(2) + [0.00, 0.25, 0.25, 0.50], # y + ] + ) + transmission_loss = jnp.sum((response.transmission - ideal_transmission) ** 2) + return excess_power_loss + transmission_loss + + def distance_to_target(self, response: common.SorterResponse) -> jnp.ndarray: + """Compute distance from the component `response` to the challenge target.""" + target_transmission = response.transmission[ + ..., tuple(range(4)), tuple(range(4)) + ] + min_efficiency = jnp.amin(target_transmission / 0.5) + + off_target_transmission = response.transmission[ + ..., tuple(range(4))[::-1], tuple(range(4)) + ] + min_polarization_ratio = jnp.amin(target_transmission / off_target_transmission) + return jnp.maximum( + self.polarization_ratio_target - min_polarization_ratio, 0.0 + ) + jnp.maximum(self.efficiency_target - min_efficiency, 0.0) + + def metrics( + self, + response: common.SorterResponse, + params: common.Params, + aux: base.AuxDict, + ) -> base.AuxDict: + """Compute challenge metrics. + + Args: + response: The response of the sorter component. + params: The parameters where the response was evaluated. + aux: The auxilliary quantities returned by the component response method. + + Returns: + The metrics dictionary, with the following quantities: + - minimum polarization ratio + - mean polarization ratio + - minimum efficiency + - mean efficiency + """ + del params, aux + target_transmission = response.transmission[ + ..., tuple(range(4)), tuple(range(4)) + ] + efficiency = target_transmission / 0.5 + + off_target_transmission = response.transmission[ + ..., tuple(range(4))[::-1], tuple(range(4)) + ] + polarization_ratio = target_transmission / off_target_transmission + return { + EFFICIENCY_MEAN: jnp.mean(efficiency), + EFFICIENCY_MIN: jnp.amin(efficiency), + POLARIZATION_RATIO_MEAN: jnp.mean(polarization_ratio), + POLARIZATION_RATIO_MIN: jnp.amin(polarization_ratio), + } + + +POLARIZATION_SORTER_SPEC = common.SorterSpec( + permittivity_ambient=(1.0 + 0.0j) ** 2, + permittivity_cap=(1.5 + 0.00001j) ** 2, + permittivity_metasurface_solid=(4.0 + 0.00001j) ** 2, + permittivity_metasurface_void=(1.5 + 0.00001j) ** 2, + permittivity_spacer=(1.5 + 0.00001j) ** 2, + permittivity_substrate=(4.0730 + 0.028038j) ** 2, + thickness_cap=types.BoundedArray(0.05, lower_bound=0.00, upper_bound=0.7), + thickness_metasurface=types.BoundedArray(0.15, lower_bound=0.05, upper_bound=0.3), + thickness_spacer=types.BoundedArray(1.0, lower_bound=0.5, upper_bound=1.2), + pitch=2.0, + offset_monitor_substrate=0.1, +) + +POLARIZATION_SORTER_SIM_PARAMS = common.SorterSimParams( + grid_spacing=0.01, + wavelength=0.55, + polar_angle=0.0, + azimuthal_angle=0.0, + formulation=fmm.Formulation.JONES_DIRECT_FOURIER, + approximate_num_terms=1200, + truncation=basis.Truncation.CIRCULAR, +) + +# Minimum width and spacing are 80 nm for the default dimensions. +MINIMUM_WIDTH = 8 +MINIMUM_SPACING = 8 + +# Target metrics for the sorter component. +EFFICIENCY_TARGET = 0.8 +POLARIZATION_RATIO_TARGET = 10 + + +def polarization_sorter( + minimum_width: int = MINIMUM_WIDTH, + minimum_spacing: int = MINIMUM_SPACING, + thickness_initializer: common.ThicknessInitializer = ( + initializers.identity_initializer + ), + density_initializer: base.DensityInitializer = density_initializer, + spec: common.SorterSpec = POLARIZATION_SORTER_SPEC, + sim_params: common.SorterSimParams = POLARIZATION_SORTER_SIM_PARAMS, + efficiency_target: float = EFFICIENCY_TARGET, + polarization_ratio_target: float = POLARIZATION_RATIO_TARGET, +) -> PolarizationSorterChallenge: + """Polarization sorter challenge.""" + return PolarizationSorterChallenge( + component=common.SorterComponent( + spec=spec, + sim_params=sim_params, + thickness_initializer=thickness_initializer, + density_initializer=density_initializer, + minimum_width=minimum_width, + minimum_spacing=minimum_spacing, + ), + efficiency_target=efficiency_target, + polarization_ratio_target=polarization_ratio_target, + ) diff --git a/tests/challenges/sorter/test_common.py b/tests/challenges/sorter/test_common.py index 7561722..60ae82e 100644 --- a/tests/challenges/sorter/test_common.py +++ b/tests/challenges/sorter/test_common.py @@ -5,16 +5,16 @@ import unittest -from fmmax import fmm, basis import jax import jax.numpy as jnp import numpy as onp +from fmmax import basis, fmm from jax import tree_util +from parameterized import parameterized from totypes import types from invrs_gym.challenges.sorter import common - EXAMPLE_SPEC = common.SorterSpec( permittivity_ambient=(1.0 + 0.0j) ** 2, permittivity_cap=(1.5 + 0.0j) ** 2, @@ -40,7 +40,7 @@ ) -class SortergResponseTest(unittest.TestCase): +class SorterResponseTest(unittest.TestCase): def test_flatten_unflatten(self): original = common.SorterResponse( wavelength=jnp.arange(3), @@ -61,30 +61,45 @@ def test_flatten_unflatten(self): class SorterComponentTest(unittest.TestCase): - def test_density_has_expected_properties(self): - mc = common.SorterComponent( + @parameterized.expand([[1, 1], [2, 3]]) + def test_density_has_expected_properties(self, minimum_width, minimum_spacing): + sc = common.SorterComponent( spec=EXAMPLE_SPEC, sim_params=EXAMPLE_SIM_PARAMS, thickness_initializer=lambda _, thickness: thickness, density_initializer=lambda _, seed_density: seed_density, + minimum_width=minimum_width, + minimum_spacing=minimum_spacing, ) - params = mc.init(jax.random.PRNGKey(0)) + params = sc.init(jax.random.PRNGKey(0)) + self.assertEqual( + set(params.keys()), + { + "metasurface_density", + "metasurface_thickness", + "cap_thickness", + "spacer_thickness", + }, + ) + self.assertEqual(params["density_metasurface"].lower_bound, 0.0) self.assertEqual(params["density_metasurface"].upper_bound, 1.0) + self.assertEqual(params["density_metasurface"].minimum_width, minimum_width) + self.assertEqual(params["density_metasurface"].minimum_spacing, minimum_spacing) self.assertSequenceEqual(params["density_metasurface"].periodic, (True, True)) def test_can_jit_response(self): - mc = common.SorterComponent( + sc = common.SorterComponent( spec=EXAMPLE_SPEC, sim_params=EXAMPLE_SIM_PARAMS, thickness_initializer=lambda _, thickness: thickness, density_initializer=lambda _, seed_density: seed_density, ) - params = mc.init(jax.random.PRNGKey(0)) + params = sc.init(jax.random.PRNGKey(0)) @jax.jit def jit_response_fn(params): - return mc.response(params) + return sc.response(params) jit_response_fn(params) diff --git a/tests/challenges/sorter/test_polarization_challenge.py b/tests/challenges/sorter/test_polarization_challenge.py index 73c8ee3..41d515f 100644 --- a/tests/challenges/sorter/test_polarization_challenge.py +++ b/tests/challenges/sorter/test_polarization_challenge.py @@ -1,117 +1,49 @@ -# """Tests for `sorter.polarization_challenge`. - -# Copyright (c) 2023 The INVRS-IO authors. -# """ - -# import dataclasses -# import unittest - -# import jax -# import jax.numpy as jnp -# import optax -# from fmmax import fmm -# from parameterized import parameterized - -# from invrs_gym.challenges.sorter import polarization_challenge - -# LIGHTWEIGHT_SIM_PARAMS = dataclasses.replace( -# polarization_challenge.POLARIZATION_SORTER_SIM_PARAMS, -# approximate_num_terms=100, -# formulation=fmm.Formulation.FFT, -# ) - - -# class SplitterComponentTest(unittest.TestCase): -# def test_density_has_expected_properties(self): -# mc = polarization_challenge.DiffractiveSplitterComponent( -# spec=splitter_challenge.DIFFRACTIVE_SPLITTER_SPEC, -# sim_params=LIGHTWEIGHT_SIM_PARAMS, -# thickness_initializer=lambda _, thickness: thickness, -# density_initializer=lambda _, seed_density: seed_density, -# ) -# params = mc.init(jax.random.PRNGKey(0)) -# self.assertEqual(params["density"].lower_bound, 0.0) -# self.assertEqual(params["density"].upper_bound, 1.0) -# self.assertSequenceEqual(params["density"].periodic, (True, True)) -# self.assertEqual( -# params["thickness"].array, -# splitter_challenge.DIFFRACTIVE_SPLITTER_SPEC.thickness_grating, -# ) - -# def test_can_jit_response(self): -# mc = splitter_challenge.DiffractiveSplitterComponent( -# spec=splitter_challenge.DIFFRACTIVE_SPLITTER_SPEC, -# sim_params=LIGHTWEIGHT_SIM_PARAMS, -# thickness_initializer=lambda _, thickness: thickness, -# density_initializer=lambda _, seed_density: seed_density, -# ) -# params = mc.init(jax.random.PRNGKey(0)) - -# @jax.jit -# def jit_response_fn(params): -# return mc.response(params) - -# jit_response_fn(params) - -# def test_multiple_wavelengths(self): -# mc = splitter_challenge.DiffractiveSplitterComponent( -# spec=splitter_challenge.DIFFRACTIVE_SPLITTER_SPEC, -# sim_params=LIGHTWEIGHT_SIM_PARAMS, -# thickness_initializer=lambda _, thickness: thickness, -# density_initializer=lambda _, seed_density: seed_density, -# ) -# params = mc.init(jax.random.PRNGKey(0)) -# response, aux = mc.response(params, wavelength=jnp.asarray([1.045, 1.055])) -# self.assertSequenceEqual( -# response.transmission_efficiency.shape, -# (2, mc.expansion.num_terms, 1), -# ) - - -# class SplitterChallengeTest(unittest.TestCase): -# @parameterized.expand([[lambda fn: fn], [jax.jit]]) -# def test_optimize(self, step_fn_decorator): -# mc = splitter_challenge.diffractive_splitter(sim_params=LIGHTWEIGHT_SIM_PARAMS) - -# def loss_fn(params): -# response, aux = mc.component.response(params) -# loss = mc.loss(response) -# return loss, (response, aux) - -# opt = optax.adam(0.05) -# params = mc.component.init(jax.random.PRNGKey(0)) -# state = opt.init(params) - -# @step_fn_decorator -# def step_fn(params, state): -# (value, (response, aux)), grad = jax.value_and_grad(loss_fn, has_aux=True)( -# params -# ) -# metrics = mc.metrics(response, params, aux) -# updates, state = opt.update(grad, state) -# params = optax.apply_updates(params, updates) -# return params, state, metrics - -# step_fn(params, state) - -# @parameterized.expand([[1, 1], [2, 3]]) -# def test_density_has_expected_attrs(self, min_width, min_spacing): -# mc = splitter_challenge.diffractive_splitter( -# minimum_width=min_width, -# minimum_spacing=min_spacing, -# ) -# params = mc.component.init(jax.random.PRNGKey(0)) - -# self.assertEqual(set(params.keys()), {"density", "thickness"}) - -# self.assertEqual(params["density"].lower_bound, 0.0) -# self.assertEqual(params["density"].upper_bound, 1.0) -# self.assertSequenceEqual(params["density"].periodic, (True, True)) -# self.assertSequenceEqual(params["density"].symmetries, ()) -# self.assertEqual(params["density"].minimum_width, min_width) -# self.assertEqual(params["density"].minimum_spacing, min_spacing) -# self.assertIsNone(params["density"].fixed_solid) -# self.assertIsNone(params["density"].fixed_void) - -# self.assertEqual(params["thickness"].lower_bound, 0.0) -# self.assertIsNone(params["thickness"].upper_bound) +"""Tests for `sorter.polarization_challenge`. + +Copyright (c) 2023 The INVRS-IO authors. +""" + +import dataclasses +import unittest + +import jax +import optax +from fmmax import fmm +from parameterized import parameterized + +from invrs_gym.challenges.sorter import polarization_challenge + +LIGHTWEIGHT_SIM_PARAMS = dataclasses.replace( + polarization_challenge.POLARIZATION_SORTER_SIM_PARAMS, + approximate_num_terms=100, + formulation=fmm.Formulation.FFT, +) + + +class SplitterChallengeTest(unittest.TestCase): + @parameterized.expand([[lambda fn: fn], [jax.jit]]) + def test_optimize(self, step_fn_decorator): + pc = polarization_challenge.polarization_sorter( + sim_params=LIGHTWEIGHT_SIM_PARAMS + ) + + def loss_fn(params): + response, aux = pc.component.response(params) + loss = pc.loss(response) + return loss, (response, aux) + + opt = optax.adam(0.05) + params = pc.component.init(jax.random.PRNGKey(0)) + state = opt.init(params) + + @step_fn_decorator + def step_fn(params, state): + (value, (response, aux)), grad = jax.value_and_grad(loss_fn, has_aux=True)( + params + ) + metrics = pc.metrics(response, params, aux) + updates, state = opt.update(grad, state) + params = optax.apply_updates(params, updates) + return params, state, metrics + + step_fn(params, state)