Commit 3ae65af
Add tree-mode support for nnx.recursive_map, nnx.view, and nnx.view_info
Add a `graph` parameter to `nnx.recursive_map`, `nnx.view`, and
`nnx.view_info`. When `graph=False`, these functions use JAX's native
pytree traversal instead of Flax's graph protocol. Cycles and shared
Variable/Ref references are detected and raise errors in tree mode.
Added parametrized tests for both graph and tree modes.
PiperOrigin-RevId: 8732255171 parent 8f8ec30 commit 3ae65af
File tree
5 files changed
+208
-47
lines changed- flax/nnx
- tests/nnx
5 files changed
+208
-47
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2907 | 2907 | | |
2908 | 2908 | | |
2909 | 2909 | | |
2910 | | - | |
| 2910 | + | |
| 2911 | + | |
2911 | 2912 | | |
2912 | 2913 | | |
2913 | 2914 | | |
2914 | 2915 | | |
2915 | 2916 | | |
| 2917 | + | |
2916 | 2918 | | |
2917 | 2919 | | |
2918 | 2920 | | |
2919 | 2921 | | |
2920 | 2922 | | |
2921 | 2923 | | |
2922 | | - | |
| 2924 | + | |
2923 | 2925 | | |
2924 | 2926 | | |
2925 | 2927 | | |
2926 | 2928 | | |
2927 | 2929 | | |
2928 | | - | |
| 2930 | + | |
2929 | 2931 | | |
2930 | 2932 | | |
2931 | 2933 | | |
2932 | 2934 | | |
2933 | | - | |
| 2935 | + | |
2934 | 2936 | | |
2935 | 2937 | | |
2936 | 2938 | | |
2937 | 2939 | | |
2938 | | - | |
| 2940 | + | |
2939 | 2941 | | |
2940 | 2942 | | |
2941 | 2943 | | |
| |||
2946 | 2948 | | |
2947 | 2949 | | |
2948 | 2950 | | |
2949 | | - | |
| 2951 | + | |
| 2952 | + | |
| 2953 | + | |
| 2954 | + | |
| 2955 | + | |
| 2956 | + | |
| 2957 | + | |
2950 | 2958 | | |
2951 | 2959 | | |
2952 | 2960 | | |
| |||
2969 | 2977 | | |
2970 | 2978 | | |
2971 | 2979 | | |
| 2980 | + | |
| 2981 | + | |
| 2982 | + | |
| 2983 | + | |
| 2984 | + | |
| 2985 | + | |
| 2986 | + | |
| 2987 | + | |
2972 | 2988 | | |
2973 | | - | |
2974 | | - | |
2975 | | - | |
2976 | | - | |
2977 | | - | |
| 2989 | + | |
| 2990 | + | |
| 2991 | + | |
| 2992 | + | |
| 2993 | + | |
| 2994 | + | |
| 2995 | + | |
| 2996 | + | |
| 2997 | + | |
| 2998 | + | |
2978 | 2999 | | |
2979 | 3000 | | |
2980 | | - | |
| 3001 | + | |
2981 | 3002 | | |
2982 | 3003 | | |
2983 | 3004 | | |
| |||
3002 | 3023 | | |
3003 | 3024 | | |
3004 | 3025 | | |
3005 | | - | |
| 3026 | + | |
3006 | 3027 | | |
3007 | 3028 | | |
3008 | 3029 | | |
| |||
3017 | 3038 | | |
3018 | 3039 | | |
3019 | 3040 | | |
| 3041 | + | |
| 3042 | + | |
| 3043 | + | |
| 3044 | + | |
| 3045 | + | |
| 3046 | + | |
| 3047 | + | |
| 3048 | + | |
| 3049 | + | |
| 3050 | + | |
| 3051 | + | |
| 3052 | + | |
| 3053 | + | |
| 3054 | + | |
| 3055 | + | |
| 3056 | + | |
| 3057 | + | |
| 3058 | + | |
| 3059 | + | |
| 3060 | + | |
| 3061 | + | |
| 3062 | + | |
| 3063 | + | |
| 3064 | + | |
| 3065 | + | |
| 3066 | + | |
| 3067 | + | |
| 3068 | + | |
| 3069 | + | |
| 3070 | + | |
| 3071 | + | |
| 3072 | + | |
| 3073 | + | |
| 3074 | + | |
| 3075 | + | |
| 3076 | + | |
| 3077 | + | |
| 3078 | + | |
| 3079 | + | |
| 3080 | + | |
| 3081 | + | |
| 3082 | + | |
| 3083 | + | |
| 3084 | + | |
| 3085 | + | |
| 3086 | + | |
3020 | 3087 | | |
3021 | 3088 | | |
3022 | 3089 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
428 | 428 | | |
429 | 429 | | |
430 | 430 | | |
431 | | - | |
| 431 | + | |
432 | 432 | | |
433 | 433 | | |
434 | 434 | | |
| |||
462 | 462 | | |
463 | 463 | | |
464 | 464 | | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
465 | 469 | | |
466 | 470 | | |
467 | 471 | | |
| |||
477 | 481 | | |
478 | 482 | | |
479 | 483 | | |
480 | | - | |
| 484 | + | |
481 | 485 | | |
482 | 486 | | |
483 | 487 | | |
| |||
518 | 522 | | |
519 | 523 | | |
520 | 524 | | |
521 | | - | |
| 525 | + | |
522 | 526 | | |
523 | 527 | | |
524 | 528 | | |
| |||
554 | 558 | | |
555 | 559 | | |
556 | 560 | | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
557 | 565 | | |
558 | 566 | | |
559 | 567 | | |
| |||
563 | 571 | | |
564 | 572 | | |
565 | 573 | | |
566 | | - | |
| 574 | + | |
567 | 575 | | |
568 | 576 | | |
569 | 577 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
896 | 896 | | |
897 | 897 | | |
898 | 898 | | |
899 | | - | |
900 | 899 | | |
901 | | - | |
| 900 | + | |
| 901 | + | |
902 | 902 | | |
903 | | - | |
904 | | - | |
905 | | - | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
906 | 906 | | |
907 | | - | |
908 | | - | |
| 907 | + | |
909 | 908 | | |
910 | 909 | | |
911 | 910 | | |
912 | | - | |
| 911 | + | |
913 | 912 | | |
914 | | - | |
| 913 | + | |
915 | 914 | | |
916 | | - | |
| 915 | + | |
917 | 916 | | |
918 | | - | |
919 | | - | |
920 | | - | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
921 | 920 | | |
| 921 | + | |
922 | 922 | | |
923 | | - | |
| 923 | + | |
924 | 924 | | |
925 | 925 | | |
926 | 926 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1209 | 1209 | | |
1210 | 1210 | | |
1211 | 1211 | | |
1212 | | - | |
| 1212 | + | |
| 1213 | + | |
1213 | 1214 | | |
1214 | 1215 | | |
1215 | 1216 | | |
| |||
1218 | 1219 | | |
1219 | 1220 | | |
1220 | 1221 | | |
1221 | | - | |
| 1222 | + | |
1222 | 1223 | | |
1223 | 1224 | | |
1224 | 1225 | | |
| |||
1503 | 1504 | | |
1504 | 1505 | | |
1505 | 1506 | | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
| 1576 | + | |
| 1577 | + | |
| 1578 | + | |
| 1579 | + | |
| 1580 | + | |
| 1581 | + | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
1506 | 1587 | | |
1507 | 1588 | | |
1508 | 1589 | | |
| |||
0 commit comments