[{"data":1,"prerenderedAt":20},["ShallowReactive",2],{"chapter:teenygrad\u002Fcore-concepts\u002Fname-scopes.json":3},{"project":4,"route":5,"title":6,"titleHtml":6,"navTitle":6,"part":7,"sourcePath":8,"editUrl":9,"html":10,"toc":11,"hasMermaid":12,"prev":13,"next":16},"teenygrad","\u002Fteenygrad\u002Fcore-concepts\u002Fname-scopes","Name Scopes","Core Concepts","core-concepts\u002Fname-scopes.md","https:\u002F\u002Fgithub.com\u002Fteenygrad\u002Fteenygrad\u002Fedit\u002Fmain\u002Fbooks\u002Fteenygrad\u002Fsrc\u002Fcore-concepts\u002Fname-scopes.md","\u003Cp>\u003Ccode>teeny-core::name_scope\u003C\u002Fcode> (\u003Ca href=\"\u002Fapi\u002Fteenygrad\u002Fteenygrad\u002Fteeny_core\u002Fname_scope\u002F\">API docs\u003C\u002Fa>),\navailable under the \u003Ccode>std\u003C\u002Fcode> feature, provides scoped naming for graph nodes\u002Fparameters —\nuseful for giving generated graphs (and, downstream, debug output, checkpoints, profiler traces)\nhuman-readable, hierarchical names instead of anonymous IDs.\u003C\u002Fp>\n\u003Cpre data-lang=\"rust\" class=\"shiki teeny-datasheet\" style=\"background-color:#16181a;color:#e6e8e3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF5F9E\">use\u003C\u002Fspan>\u003Cspan style=\"color:#6FBF98\"> teeny_core\u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\">::\u003C\u002Fspan>\u003Cspan style=\"color:#6FBF98\">name_scope\u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\">::\u003C\u002Fspan>\u003Cspan style=\"color:#E6E8E3\">name_scope\u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF5F9E\">let\u003C\u002Fspan>\u003Cspan style=\"color:#E6E8E3\"> _guard \u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\">=\u003C\u002Fspan>\u003Cspan style=\"color:#7FB6D9\"> name_scope\u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\">(\u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\">encoder\u002Flayer0\u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7F877D;font-style:italic\">\u002F\u002F anything built while `_guard` is alive is implicitly namespaced under \"encoder\u002Flayer0\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>current_scope()\u003C\u002Fcode> returns the active scope name, if any (\u003Ccode>None\u003C\u002Fcode> outside of any \u003Ccode>name_scope\u003C\u002Fcode>\nguard).\u003C\u002Fp>\n\u003Cp>Because this depends on \u003Ccode>std\u003C\u002Fcode> (thread-local or similar scope-tracking machinery), it’s gated\nbehind \u003Ccode>teeny-core\u003C\u002Fcode>’s \u003Ccode>std\u003C\u002Fcode> feature — unavailable in the default \u003Ccode>no_std\u003C\u002Fcode> build.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>TODO\u003C\u002Fstrong>: document nested scopes and how scope names interact with parameter naming once that’s\nwired into the \u003Ccode>nn\u003C\u002Fcode> layer API.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n",[],false,{"title":14,"titleHtml":14,"route":15},"The Dtype System","\u002Fteenygrad\u002Fcore-concepts\u002Fdtype-system",{"title":17,"titleHtml":18,"route":19},"Building Models with nn","Building Models with \u003Ccode>nn\u003C\u002Fcode>","\u002Fteenygrad\u002Fnn-layers\u002Fbuilding-models",1786271829001]