CINXE.COM
TorchArc | Keng's Blog
<!DOCTYPE html><html lang="en" class="scroll-pt-[76px] theme-clean no-tint sidebar-default sidebar-list-default links-default __variable_f9f441 __variable_96046e __variable_7d852e"><head><meta charSet="utf-8"/><link rel="preconnect" href="https://api.gitbook.com"/><link rel="preconnect" href="https://ka-p.fontawesome.com/releases/v6.6.0/"/><link rel="preconnect" href="https://static.gitbook.com"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" imageSrcSet="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=1&quality=100&sign=c53efa1d&sv=2 32w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=2&quality=100&sign=c53efa1d&sv=2 64w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=3&quality=100&sign=c53efa1d&sv=2 96w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=4&quality=100&sign=c53efa1d&sv=2 128w" imageSizes="32px" fetchPriority="high"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/51d34edee75a6bda.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/45626ddd3633854a.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/959cd9e129418dea.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/95b358fb5c9305a3.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/bc859a4cd35f3fe5.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/e1c64f6ae2213816.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/89f0191abc1ad313.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/442a0afb56948a32.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/b322ae72ca7529fb.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/74683140939dd056.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/ee3396defbfa8d21.css" data-precedence="next"/><link rel="stylesheet" href="https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="https://static.gitbook.com/_next/static/chunks/webpack-355ff169b9cbdd9b.js"/><script src="https://static.gitbook.com/_next/static/chunks/1dd3208c-2ac490673f536a31.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/1456-5cafc73410502e8f.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/main-app-145b32589a8ebb53.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/app/global-error-53091e9566f77828.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/7842-785434c6c9469d80.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/4289-f629daea2759300f.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/8581-a982d98f56c384e1.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/5890-04b4600f719d7465.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/8843-00cba0b160454c4d.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/983-b8c447ba525bab23.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/1683-31d06db443871717.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/8678-15aefe1165bae785.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/7093-8f66c7b92e65df99.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/app/middleware/(site)/layout-e13b12a8cbd8766b.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/app/middleware/(site)/error-0c18ba8fba3d14c8.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/2241-ff00605587a5640e.js" async=""></script><script src="https://static.gitbook.com/_next/static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js" async=""></script><script async="" src="https://integrations.gitbook.com/v1/integrations/googleanalytics/installations/f358ef7676b84cfde66faab6d1bd9057fe92c347966f2738381bb4aa08f7ca27/sites/site_ELOmj/script.js?version=150.0"></script><meta name="color-scheme" content="light"/><title>TorchArc | Keng's Blog</title><meta name="description" content="2020/06/20"/><meta name="generator" content="GitBook (d7aa5fa)"/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://kengz.gitbook.io/blog/ml/torcharc"/><meta property="og:title" content="TorchArc | Keng's Blog"/><meta property="og:description" content="2020/06/20"/><meta property="og:image" content="https://kengz.gitbook.io/blog/~gitbook/ogimage/-MAHkgY0gMRpyzUqnVLP"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="TorchArc | Keng's Blog"/><meta name="twitter:description" content="2020/06/20"/><meta name="twitter:image" content="https://kengz.gitbook.io/blog/~gitbook/ogimage/-MAHkgY0gMRpyzUqnVLP"/><link rel="icon" href="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=48&height=48&sign=c53efa1d&sv=2" type="image/png" media="(prefers-color-scheme: light)"/><link rel="icon" href="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=48&height=48&sign=c53efa1d&sv=2" type="image/png" media="(prefers-color-scheme: dark)"/><link rel="icon" href="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=48&height=48&sign=c53efa1d&sv=2" type="image/png" media="(prefers-color-scheme: light)"/><link rel="icon" href="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=48&height=48&sign=c53efa1d&sv=2" type="image/png" media="(prefers-color-scheme: dark)"/><meta name="next-size-adjust"/><style> :root { --primary-1: 251 255 255; --contrast-primary-1: 29 29 29; --primary-2: 242 251 255; --contrast-primary-2: 29 29 29; --primary-3: 236 248 255; --contrast-primary-3: 29 29 29; --primary-4: 227 244 255; --contrast-primary-4: 29 29 29; --primary-5: 218 239 255; --contrast-primary-5: 29 29 29; --primary-6: 207 231 255; --contrast-primary-6: 29 29 29; --primary-7: 190 219 255; --contrast-primary-7: 29 29 29; --primary-8: 174 206 255; --contrast-primary-8: 29 29 29; --primary-9: 56 132 255; --contrast-primary-9: 255 255 255; --primary-10: 38 114 236; --contrast-primary-10: 255 255 255; --primary-11: 23 102 222; --contrast-primary-11: 255 255 255; --primary-12: 0 0 119; --contrast-primary-12: 255 255 255; --primary-original: 56 132 255; --contrast-primary-original: 255 255 255; --tint-1: 254 255 255; --contrast-tint-1: 29 29 29; --tint-2: 248 250 253; --contrast-tint-2: 29 29 29; --tint-3: 245 248 252; --contrast-tint-3: 29 29 29; --tint-4: 239 242 248; --contrast-tint-4: 29 29 29; --tint-5: 233 237 244; --contrast-tint-5: 29 29 29; --tint-6: 225 230 238; --contrast-tint-6: 29 29 29; --tint-7: 212 217 226; --contrast-tint-7: 29 29 29; --tint-8: 199 205 215; --contrast-tint-8: 29 29 29; --tint-9: 119 134 157; --contrast-tint-9: 255 255 255; --tint-10: 108 122 145; --contrast-tint-10: 255 255 255; --tint-11: 97 111 134; --contrast-tint-11: 255 255 255; --tint-12: 18 29 48; --contrast-tint-12: 255 255 255; --tint-original: 120 120 120; --contrast-tint-original: 255 255 255; --neutral-1: 255 255 255; --contrast-neutral-1: 29 29 29; --neutral-2: 250 250 250; --contrast-neutral-2: 29 29 29; --neutral-3: 247 247 247; --contrast-neutral-3: 29 29 29; --neutral-4: 242 242 242; --contrast-neutral-4: 29 29 29; --neutral-5: 237 237 237; --contrast-neutral-5: 29 29 29; --neutral-6: 229 229 229; --contrast-neutral-6: 29 29 29; --neutral-7: 217 217 217; --contrast-neutral-7: 29 29 29; --neutral-8: 204 204 204; --contrast-neutral-8: 29 29 29; --neutral-9: 120 120 120; --contrast-neutral-9: 255 255 255; --neutral-10: 121 121 121; --contrast-neutral-10: 255 255 255; --neutral-11: 110 110 110; --contrast-neutral-11: 255 255 255; --neutral-12: 29 29 29; --contrast-neutral-12: 255 255 255; --neutral-original: 120 120 120; --contrast-neutral-original: 255 255 255; --header-background: 56 132 255; --header-link: 255 255 255; --info-1: 255 255 255; --contrast-info-1: 29 29 29; --info-2: 250 250 250; --contrast-info-2: 29 29 29; --info-3: 247 247 247; --contrast-info-3: 29 29 29; --info-4: 242 242 242; --contrast-info-4: 29 29 29; --info-5: 237 237 237; --contrast-info-5: 29 29 29; --info-6: 229 229 229; --contrast-info-6: 29 29 29; --info-7: 217 217 217; --contrast-info-7: 29 29 29; --info-8: 204 204 204; --contrast-info-8: 29 29 29; --info-9: 120 120 120; --contrast-info-9: 255 255 255; --info-10: 121 121 121; --contrast-info-10: 255 255 255; --info-11: 110 110 110; --contrast-info-11: 255 255 255; --info-12: 29 29 29; --contrast-info-12: 255 255 255; --info-original: 120 120 120; --contrast-info-original: 255 255 255; --warning-1: 255 254 249; --contrast-warning-1: 29 29 29; --warning-2: 255 248 238; --contrast-warning-2: 29 29 29; --warning-3: 255 244 230; --contrast-warning-3: 29 29 29; --warning-4: 255 238 219; --contrast-warning-4: 29 29 29; --warning-5: 255 232 208; --contrast-warning-5: 29 29 29; --warning-6: 255 223 194; --contrast-warning-6: 29 29 29; --warning-7: 246 210 176; --contrast-warning-7: 29 29 29; --warning-8: 237 196 157; --contrast-warning-8: 29 29 29; --warning-9: 254 154 0; --contrast-warning-9: 29 29 29; --warning-10: 187 92 0; --contrast-warning-10: 255 255 255; --warning-11: 174 81 0; --contrast-warning-11: 255 255 255; --warning-12: 75 0 0; --contrast-warning-12: 255 255 255; --warning-original: 254 154 0; --contrast-warning-original: 29 29 29; --danger-1: 255 252 251; --contrast-danger-1: 29 29 29; --danger-2: 255 244 242; --contrast-danger-2: 29 29 29; --danger-3: 255 239 235; --contrast-danger-3: 29 29 29; --danger-4: 255 231 226; --contrast-danger-4: 29 29 29; --danger-5: 255 223 217; --contrast-danger-5: 29 29 29; --danger-6: 255 212 205; --contrast-danger-6: 29 29 29; --danger-7: 255 196 189; --contrast-danger-7: 29 29 29; --danger-8: 255 181 173; --contrast-danger-8: 29 29 29; --danger-9: 251 44 54; --contrast-danger-9: 255 255 255; --danger-10: 228 0 33; --contrast-danger-10: 255 255 255; --danger-11: 214 0 17; --contrast-danger-11: 255 255 255; --danger-12: 101 0 0; --contrast-danger-12: 255 255 255; --danger-original: 251 44 54; --contrast-danger-original: 255 255 255; --success-1: 251 255 251; --contrast-success-1: 29 29 29; --success-2: 241 254 242; --contrast-success-2: 29 29 29; --success-3: 234 254 236; --contrast-success-3: 29 29 29; --success-4: 224 251 227; --contrast-success-4: 29 29 29; --success-5: 214 248 218; --contrast-success-5: 29 29 29; --success-6: 202 242 206; --contrast-success-6: 29 29 29; --success-7: 185 231 190; --contrast-success-7: 29 29 29; --success-8: 167 220 173; --contrast-success-8: 29 29 29; --success-9: 0 201 80; --contrast-success-9: 29 29 29; --success-10: 0 152 23; --contrast-success-10: 255 255 255; --success-11: 0 140 0; --contrast-success-11: 255 255 255; --success-12: 0 47 0; --contrast-success-12: 255 255 255; --success-original: 0 201 80; --contrast-success-original: 29 29 29; } .dark { --primary-1: 26 29 34; --contrast-primary-1: 255 255 255; --primary-2: 29 35 44; --contrast-primary-2: 255 255 255; --primary-3: 35 44 59; --contrast-primary-3: 255 255 255; --primary-4: 36 48 68; --contrast-primary-4: 255 255 255; --primary-5: 38 54 79; --contrast-primary-5: 255 255 255; --primary-6: 39 58 88; --contrast-primary-6: 255 255 255; --primary-7: 45 68 104; --contrast-primary-7: 255 255 255; --primary-8: 51 78 121; --contrast-primary-8: 255 255 255; --primary-9: 56 132 255; --contrast-primary-9: 255 255 255; --primary-10: 63 139 255; --contrast-primary-10: 255 255 255; --primary-11: 111 189 255; --contrast-primary-11: 29 29 29; --primary-12: 172 255 255; --contrast-primary-12: 29 29 29; --primary-original: 56 132 255; --contrast-primary-original: 255 255 255; --tint-1: 29 29 29; --contrast-tint-1: 255 255 255; --tint-2: 34 35 35; --contrast-tint-2: 255 255 255; --tint-3: 43 44 45; --contrast-tint-3: 255 255 255; --tint-4: 46 48 50; --contrast-tint-4: 255 255 255; --tint-5: 52 54 56; --contrast-tint-5: 255 255 255; --tint-6: 56 58 61; --contrast-tint-6: 255 255 255; --tint-7: 65 68 71; --contrast-tint-7: 255 255 255; --tint-8: 75 78 82; --contrast-tint-8: 255 255 255; --tint-9: 126 133 145; --contrast-tint-9: 255 255 255; --tint-10: 137 145 157; --contrast-tint-10: 255 255 255; --tint-11: 185 193 205; --contrast-tint-11: 29 29 29; --tint-12: 247 255 255; --contrast-tint-12: 29 29 29; --tint-original: 120 120 120; --contrast-tint-original: 255 255 255; --neutral-1: 29 29 29; --contrast-neutral-1: 255 255 255; --neutral-2: 34 34 34; --contrast-neutral-2: 255 255 255; --neutral-3: 44 44 44; --contrast-neutral-3: 255 255 255; --neutral-4: 48 48 48; --contrast-neutral-4: 255 255 255; --neutral-5: 53 53 53; --contrast-neutral-5: 255 255 255; --neutral-6: 57 57 57; --contrast-neutral-6: 255 255 255; --neutral-7: 67 67 67; --contrast-neutral-7: 255 255 255; --neutral-8: 78 78 78; --contrast-neutral-8: 255 255 255; --neutral-9: 120 120 120; --contrast-neutral-9: 255 255 255; --neutral-10: 144 144 144; --contrast-neutral-10: 255 255 255; --neutral-11: 192 192 192; --contrast-neutral-11: 29 29 29; --neutral-12: 255 255 255; --contrast-neutral-12: 29 29 29; --neutral-original: 120 120 120; --contrast-neutral-original: 255 255 255; --header-background: 56 132 255; --header-link: 255 255 255; --info-1: 29 29 29; --contrast-info-1: 255 255 255; --info-2: 34 34 34; --contrast-info-2: 255 255 255; --info-3: 44 44 44; --contrast-info-3: 255 255 255; --info-4: 48 48 48; --contrast-info-4: 255 255 255; --info-5: 53 53 53; --contrast-info-5: 255 255 255; --info-6: 57 57 57; --contrast-info-6: 255 255 255; --info-7: 67 67 67; --contrast-info-7: 255 255 255; --info-8: 78 78 78; --contrast-info-8: 255 255 255; --info-9: 120 120 120; --contrast-info-9: 255 255 255; --info-10: 144 144 144; --contrast-info-10: 255 255 255; --info-11: 192 192 192; --contrast-info-11: 29 29 29; --info-12: 255 255 255; --contrast-info-12: 29 29 29; --info-original: 120 120 120; --contrast-info-original: 255 255 255; --warning-1: 32 28 25; --contrast-warning-1: 255 255 255; --warning-2: 40 33 26; --contrast-warning-2: 255 255 255; --warning-3: 53 41 30; --contrast-warning-3: 255 255 255; --warning-4: 60 44 29; --contrast-warning-4: 255 255 255; --warning-5: 69 49 29; --contrast-warning-5: 255 255 255; --warning-6: 76 52 27; --contrast-warning-6: 255 255 255; --warning-7: 90 61 30; --contrast-warning-7: 255 255 255; --warning-8: 104 70 34; --contrast-warning-8: 255 255 255; --warning-9: 254 154 0; --contrast-warning-9: 29 29 29; --warning-10: 213 116 0; --contrast-warning-10: 255 255 255; --warning-11: 255 165 34; --contrast-warning-11: 29 29 29; --warning-12: 255 229 115; --contrast-warning-12: 29 29 29; --warning-original: 254 154 0; --contrast-warning-original: 29 29 29; --danger-1: 34 27 26; --contrast-danger-1: 255 255 255; --danger-2: 45 30 29; --contrast-danger-2: 255 255 255; --danger-3: 60 37 35; --contrast-danger-3: 255 255 255; --danger-4: 69 38 35; --contrast-danger-4: 255 255 255; --danger-5: 80 41 38; --contrast-danger-5: 255 255 255; --danger-6: 89 41 38; --contrast-danger-6: 255 255 255; --danger-7: 105 48 44; --contrast-danger-7: 255 255 255; --danger-8: 121 54 50; --contrast-danger-8: 255 255 255; --danger-9: 251 44 54; --contrast-danger-9: 255 255 255; --danger-10: 255 52 59; --contrast-danger-10: 255 255 255; --danger-11: 255 113 108; --contrast-danger-11: 255 255 255; --danger-12: 255 180 169; --contrast-danger-12: 29 29 29; --danger-original: 251 44 54; --contrast-danger-original: 255 255 255; --success-1: 26 31 26; --contrast-success-1: 255 255 255; --success-2: 28 37 29; --contrast-success-2: 255 255 255; --success-3: 33 48 35; --contrast-success-3: 255 255 255; --success-4: 33 54 35; --contrast-success-4: 255 255 255; --success-5: 34 61 38; --contrast-success-5: 255 255 255; --success-6: 32 66 38; --contrast-success-6: 255 255 255; --success-7: 37 78 44; --contrast-success-7: 255 255 255; --success-8: 41 90 50; --contrast-success-8: 255 255 255; --success-9: 0 201 80; --contrast-success-9: 29 29 29; --success-10: 0 176 54; --contrast-success-10: 255 255 255; --success-11: 62 227 106; --contrast-success-11: 29 29 29; --success-12: 139 255 168; --contrast-success-12: 29 29 29; --success-original: 0 201 80; --contrast-success-original: 29 29 29; } </style><script src="https://static.gitbook.com/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-tint-base theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint"><script>!function(){var d=document.documentElement,c=d.classList;c.remove('light','dark');d.style.colorScheme = 'light';c.add('light')}()</script><header id="site-header" class="flex flex-col h-[64px] sticky top-0 z-30 w-full flex-none shadow-[0px_1px_0px] shadow-tint-12/2 bg-tint-base/9 theme-muted:bg-tint-subtle/9 theme-bold-tint:bg-tint-subtle/9 theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint contrast-more:bg-tint-base text-sm backdrop-blur-lg"><div class="theme-bold:bg-header-background theme-bold:shadow-[0px_1px_0px] theme-bold:shadow-tint-12/2"><div class="scroll-nojump"><div class="gap-4 lg:gap-6 flex items-center justify-between w-full py-3 min-h-16 sm:h-16 px-4 sm:px-6 md:px-8 max-w-screen-2xl mx-auto page-full-width:max-w-full"><div class="flex max-w-full lg:basis-72 min-w-0 shrink items-center justify-start gap-2 lg:gap-4"><button class="flex flex-row items-center rounded straight-corners:rounded-sm px-2 py-1 lg:hidden -ml-2 text-tint-strong theme-bold:text-header-link hover:bg-tint-hover theme-bold:hover:bg-header-link/3 page-no-toc:hidden" aria-label="Open table of contents"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/bars.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-4 text-inherit"></svg></button><a class="group/headerlogo min-w-0 shrink flex items-center" href="https://kengz.gitbook.io/blog/"><img alt="" style="aspect-ratio:1" fetchPriority="high" class="block dark:hidden object-contain size-8" src="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=4&quality=100&sign=c53efa1d&sv=2" srcSet="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=1&quality=100&sign=c53efa1d&sv=2 32w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=2&quality=100&sign=c53efa1d&sv=2 64w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=3&quality=100&sign=c53efa1d&sv=2 96w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=4&quality=100&sign=c53efa1d&sv=2 128w" sizes="32px" width="256" height="256"/><img alt="" style="aspect-ratio:1" loading="lazy" fetchPriority="high" class="hidden dark:block object-contain size-8" src="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=4&quality=100&sign=c53efa1d&sv=2" srcSet="https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=1&quality=100&sign=c53efa1d&sv=2 32w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=2&quality=100&sign=c53efa1d&sv=2 64w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=3&quality=100&sign=c53efa1d&sv=2 96w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia&width=32&dpr=4&quality=100&sign=c53efa1d&sv=2 128w" sizes="32px" width="256" height="256"/><div class="text-pretty line-clamp-2 tracking-tight max-w-[18ch] lg:max-w-[24ch] font-semibold ms-3 text-base/tight lg:text-lg/tight text-tint-strong theme-bold:text-header-link">Keng's Blog</div></a></div><div class="flex grow-0 shrink-0 md:basis-56 justify-self-end order-last"><!--$--><button type="button" aria-label="Search" class="flex flex-1 flex-row justify-center items-center w-full py-2 px-3 gap-2 bg-tint-base ring-1 ring-tint-12/2 shadow-sm shadow-tint-12/3 dark:shadow-none text-tint rounded-lg straight-corners:rounded-sm contrast-more:ring-tint-12 contrast-more:text-tint-strong transition-all hover:bg-tint-subtle hover:shadow-md hover:scale-102 hover:ring-tint-hover hover:text-tint-strong focus:shadow-md focus:scale-102 focus:ring-tint-hover focus:text-tint-strong contrast-more:hover:ring-2 contrast-more:hover:ring-tint-12 contrast-more:focus:ring-2 contrast-more:focus:ring-tint-12 active:shadow-sm active:scale-100 md:justify-start md:w-full text-sm theme-bold:bg-header-link/2 theme-bold:hover:bg-header-link/3 theme-bold:text-header-link/8 theme-bold:hover:text-header-link theme-bold:ring-header-link/4 theme-bold:hover:ring-header-link/5 theme-bold:[&_svg]:text-header-link/10 theme-bold:[&_.shortcut]:text-header-link/8 theme-bold:contrast-more:bg-header-background theme-bold:contrast-more:text-header-link theme-bold:contrast-more:ring-header-link theme-bold:contrast-more:hover:bg-header-background theme-bold:contrast-more:hover:ring-header-link theme-bold:contrast-more:focus:text-header-link theme-bold:contrast-more:focus:bg-header-background theme-bold:contrast-more:focus:ring-header-link theme-bold:shadow-none theme-bold:hover:shadow-none whitespace-nowrap"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/magnifying-glass.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon text-tint-subtle shrink-0 size-4"></svg><div class="w-full hidden md:block text-left"><span class="flex-1">Search<!-- -->...</span></div><div aria-busy="true" class="shortcut -mr-1 hidden justify-end gap-0.5 whitespace-nowrap text-tint text-xs [font-feature-settings:"calt",_"case"] contrast-more:text-tint-strong md:flex opacity-0"><kbd class="flex h-5 min-w-5 items-center justify-center rounded border border-tint-subtle theme-bold:border-header-link/5 bg-tint-base theme-bold:bg-header-background px-1 ">Ctrl</kbd><kbd class="flex size-5 items-center justify-center rounded border border-tint-subtle theme-bold:border-header-link/5 bg-tint-base theme-bold:bg-header-background">K</kbd></div></button><!--/$--></div></div></div></div></header><div class="scroll-nojump"><div class="flex flex-col lg:flex-row px-4 sm:px-6 md:px-8 max-w-screen-2xl mx-auto page-full-width:max-w-full"><aside data-testid="table-of-contents" class="group text-sm grow-0 shrink-0 basis-full lg:basis-72 page-no-toc:lg:basis-56 relative z-[1] lg:sticky lg:top-0 lg:h-screen site-header:lg:top-16 site-header:lg:h-[calc(100vh_-_4rem)] site-header-sections:lg:top-[6.75rem] site-header-sections:lg:h-[calc(100vh_-_6.75rem)] pt-6 pb-4 sidebar-filled:lg:pr-6 page-no-toc:lg:pr-0 hidden navigation-open:!flex lg:flex page-no-toc:lg:hidden page-no-toc:xl:flex site-header-none:page-no-toc:lg:flex flex-col gap-4 navigation-open:border-b border-tint-subtle"><div class="lg:-ms-5 overflow-hidden relative flex flex-col flex-grow sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_&]:bg-tint-base [html.sidebar-filled.theme-bold.tint_&]:bg-tint-base page-no-toc:!bg-transparent sidebar-filled:rounded-xl straight-corners:rounded-none"><div class="px-5 *:my-4"></div><div data-testid="toc-scroll-container" class="flex flex-grow flex-col p-2 lg:pb-20 overflow-y-auto lg:gutter-stable [&::-webkit-scrollbar]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-transparent group-hover:[&::-webkit-scrollbar]:bg-tint-subtle group-hover:[&::-webkit-scrollbar-thumb]:bg-tint-7 group-hover:[&::-webkit-scrollbar-thumb:hover]:bg-tint-8"><ul class="flex flex-col gap-y-0.5 page-no-toc:hidden sidebar-list-line:border-l border-tint-subtle"><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog">Keng's Blog</a></li><li class="flex flex-col group/page-group-item"><div class="flex items-center gap-3 px-3 z-[1] sticky -top-5 pt-6 group-first/page-group-item:-mt-5 pb-3 -mb-1.5 text-xs tracking-wide font-semibold uppercase [mask-image:linear-gradient(rgba(0,0,0,1)_70%,rgba(0,0,0,0))] bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_&]:bg-tint-base [html.sidebar-filled.theme-bold.tint_&]:bg-tint-base [html.sidebar-default.theme-gradient_&]:bg-gradient-primary [html.sidebar-default.theme-gradient.tint_&]:bg-gradient-tint">ML</div><ul class="flex flex-col gap-y-0.5"><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/ml/running-wandb-on-kubernetes">Running WandB on Kubernetes</a></li><li class="flex flex-col"><a aria-current="page" class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance text-sm hover:contrast-more:ring-1 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px font-semibold sidebar-list-line:before:w-0.5 before:bg-primary-solid text-primary-subtle sidebar-list-pill:bg-primary [html.sidebar-list-pill.theme-muted_&]:bg-primary-hover [html.sidebar-list-pill.theme-bold.tint_&]:bg-primary-hover [html.sidebar-filled.sidebar-list-pill.theme-muted_&]:bg-primary [html.sidebar-filled.sidebar-list-pill.theme-bold.tint_&]:bg-primary hover:bg-primary-hover hover:text-primary hover:before:bg-primary-solid-hover sidebar-list-pill:hover:bg-primary-hover contrast-more:text-primary contrast-more:hover:text-primary-strong contrast-more:bg-primary contrast-more:ring-1 contrast-more:ring-primary contrast-more:hover:ring-primary-hover" href="/blog/ml/torcharc">TorchArc</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/ml/distributed-training-with-torchelastic-on-kubernetes">Distributed Training with TorchElastic on Kubernetes</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/ml/feature-transform">Feature Transform</a></li></ul></li><li class="flex flex-col group/page-group-item"><div class="flex items-center gap-3 px-3 z-[1] sticky -top-5 pt-6 group-first/page-group-item:-mt-5 pb-3 -mb-1.5 text-xs tracking-wide font-semibold uppercase [mask-image:linear-gradient(rgba(0,0,0,1)_70%,rgba(0,0,0,0))] bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_&]:bg-tint-base [html.sidebar-filled.theme-bold.tint_&]:bg-tint-base [html.sidebar-default.theme-gradient_&]:bg-gradient-primary [html.sidebar-default.theme-gradient.tint_&]:bg-gradient-tint">Engineering</div><ul class="flex flex-col gap-y-0.5"><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/engineering/github-actions-for-python-project">Github Actions for Python Project</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/engineering/ubuntu-gpu-server-setup">Ubuntu GPU Server Setup</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/engineering/setting-up-a-private-kubernetes-cluster">Setting up a private Kubernetes cluster</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/engineering/setting-up-a-private-ml-kubernetes-cluster-with-k0s">Setting up a private GPU Kubernetes cluster with K0s</a></li></ul></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/setting-up-a-private-kubernetes-cluster-with-k0sctl">Setting up a private Kubernetes cluster with k0sctl</a></li><li class="flex flex-col"><a class="group/toclink relative transition-colors flex flex-row justify-between rounded-md straight-corners:rounded-none p-1.5 pl-3 text-balance font-normal text-sm text-tint-strong/7 hover:bg-tint-hover hover:text-tint-strong contrast-more:text-tint-strong hover:contrast-more:text-tint-strong hover:contrast-more:ring-1 hover:contrast-more:ring-tint-12 before:contents[] before:-left-px before:absolute before:inset-y-0 sidebar-list-line:rounded-l-none sidebar-list-line:before:w-px sidebar-list-default:[&+div_a]:rounded-l-none [&+div_a]:pl-5 sidebar-list-default:[&+div_a]:before:w-px" href="/blog/setting-up-kubernetes-addons">Setting up Kubernetes Addons</a></li></ul><div class="relative z-[2] lg:absolute left-0 right-2 bottom-0 pointer-events-none sidebar-filled:pl-2 sidebar-filled:pb-2 sidebar-filled:page-no-toc:p-0 bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle [html.sidebar-filled.theme-muted_&]:bg-tint-base [html.sidebar-filled.theme-bold.tint_&]:bg-tint-base before:hidden lg:before:block before:content-[""] before:absolute before:inset-x-0 before:bottom-full before:h-8 before:bg-gradient-to-b before:from-transparent before:to-tint-base sidebar-filled:before:to-tint-subtle theme-muted:before:to-tint-subtle theme-bold-tint:before:to-tint-subtle [html.sidebar-filled.theme-muted_&]:before:to-tint-base [html.sidebar-filled.theme-bold.tint_&]:before:to-tint-base page-no-toc:before:!to-transparent"><a target="_blank" class="text-sm font-semibold text-tint flex flex-row items-center px-5 py-4 sidebar-filled:px-3 sidebar-filled:page-no-toc:lg:px-5 rounded-lg straight-corners:rounded-none hover:bg-tint hover:text-tint-strong ring-2 lg:ring-1 ring-inset ring-tint-subtle transition-colors pointer-events-auto" href="https://www.gitbook.com/?utm_source=content&utm_medium=trademark&utm_campaign=-M5KBcEvOMRAQtKb5jHb"><svg style="mask-image:url(https://static.gitbook.com/~gitbook/static/icons/svgs/custom-icons/gitbook.svg?v=2);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-5 shrink-0"></svg><span class="ml-3">Powered by GitBook</span></a></div></div></div></aside><div class="flex min-w-0 flex-1 flex-col"><!--$?--><template id="B:0"></template><div class="flex flex-row flex-1 relative py-8 lg:px-16 xl:mr-56 items-center lg:items-start"><div class="flex-1 max-w-3xl mx-auto page-full-width:mx-0"><div role="status" aria-busy="true" class="mb-8"><div class="ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]"><div class="w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]"><div class="aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]"></div></div></div></div><div role="status" aria-busy="true" class="skeleton-paragraph"><div class="ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mb-4"><div class="w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]"><div class="aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]"></div></div></div></div></div></div><!--/$--></div></div></div><!--$--><!--/$--><!--$--><!--/$--><script data-cfasync="false"> document.addEventListener("DOMContentLoaded", () => { if (Array.from(document.scripts).find(script => script.src.includes('rocket-loader.min.js'))) { const alert = document.createElement('div'); alert.className = 'p-4 mb-4 text-sm text-red-800 rounded-lg bg-red-50 mt-8 mx-8'; alert.innerHTML = ` <strong>Error in site configuration:</strong> It looks like ${window.location.hostname} has been incorrectly configured in Cloudflare. This may lead to unexpected behavior or issues with the page loading. If you are the owner of this site, please refer to <a href="https://docs.gitbook.com/published-documentation/custom-domain/configure-dns#are-you-using-cloudflare" class="underline">GitBook's documentation</a> for steps to fix the problem. `; document.body.prepend(alert); } });</script><script src="https://static.gitbook.com/_next/static/chunks/webpack-355ff169b9cbdd9b.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HC[\"https://static.gitbook.com\",\"\"]\n2:HL[\"https://static.gitbook.com/_next/static/css/51d34edee75a6bda.css\",\"style\"]\n3:HL[\"https://static.gitbook.com/_next/static/css/45626ddd3633854a.css\",\"style\"]\n4:HL[\"https://static.gitbook.com/_next/static/css/959cd9e129418dea.css\",\"style\"]\n5:HL[\"https://static.gitbook.com/_next/static/css/95b358fb5c9305a3.css\",\"style\"]\n6:HL[\"https://static.gitbook.com/_next/static/css/bc859a4cd35f3fe5.css\",\"style\"]\n7:HL[\"https://static.gitbook.com/_next/static/css/e1c64f6ae2213816.css\",\"style\"]\n8:HL[\"https://static.gitbook.com/_next/static/css/89f0191abc1ad313.css\",\"style\"]\n9:HL[\"https://static.gitbook.com/_next/static/css/442a0afb56948a32.css\",\"style\"]\na:HL[\"https://static.gitbook.com/_next/static/css/b322ae72ca7529fb.css\",\"style\"]\nb:HL[\"https://static.gitbook.com/_next/static/css/74683140939dd056.css\",\"style\"]\nc:HL[\"https://static.gitbook.com/_next/static/css/ee3396defbfa8d21.css\",\"style\"]\nd:HL[\"https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css\",\"style\"]\ne:I[11815,[],\"default\"]\n11:I[55092,[],\"default\"]\n13:I[82023,[],\"default\"]\n18:I[44622,[\"6470\",\"static/chunks/app/global-error-53091e9566f77828.js\"],\"default\"]\n12:[\"pathname\",\"ml/torcharc\",\"oc\"]\n19:[]\n0:[\"$\",\"$Le\",null,{\"buildId\":\"WBmogtLkF9w-LWN-8ucUL\",\"assetPrefix\":\"https://static.gitbook.com\",\"urlParts\":[\"\",\"blog\",\"ml\",\"torcharc\"],\"initialTree\":[\"\",{\"children\":[\"middleware\",{\"children\":[\"(site)\",{\"children\":[\"(content)\",{\"children\":[[\"pathname\",\"ml/torcharc\",\"oc\"],{\"children\":[\"__PAGE__?{\\\"pathname\\\":[\\\"ml\\\",\\\"torcharc\\\"]}\",{}]}]}]},\"$undefined\",\"$undefined\",true]}]}],\"initialSeedData\":[\"\",{\"children\":[\"middleware\",{\"children\":[\"(site)\",{\"children\":[\"(content)\",{\"children\":[[\"pathname\",\"ml/torcharc\",\"oc\"],{\"children\":[\"__PAGE__\",{},[[\"$Lf\",\"$L10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/e1c64f6ae2213816.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/89f0191abc1ad313.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/442a0afb56948a32.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/b322ae72ca7529fb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/74683140939dd056.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/ee3396defbfa8d21.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[null,[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"middleware\",\"children\",\"(site)\",\"children\",\"(content)\",\"children\",\"$12\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L13\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$L14\",\"notFoundStyles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/e1c64f6ae2213816.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/89f0191abc1ad313.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/442a0afb56948a32.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/b322ae72ca7529fb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/74683140939dd056.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"styleshee"])</script><script>self.__next_f.push([1,"t\",\"href\":\"https://static.gitbook.com/_next/static/css/ee3396defbfa8d21.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]}]],[[\"$\",\"div\",null,{\"className\":\"flex flex-row flex-1 relative py-8 lg:px-16 xl:mr-56 items-center lg:items-start\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex-1 max-w-3xl mx-auto page-full-width:mx-0\",\"children\":[[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mb-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mb-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}]]}]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/e1c64f6ae2213816.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/89f0191abc1ad313.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/442a0afb56948a32.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/b322ae72ca7529fb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/74683140939dd056.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/ee3396defbfa8d21.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/4af9aafd612346fe.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[]]]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/bc859a4cd35f3fe5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],\"$L15\"],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/51d34edee75a6bda.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/45626ddd3633854a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/959cd9e129418dea.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"https://static.gitbook.com/_next/static/css/95b358fb5c9305a3.css\",\"precedence\":\"next\",\""])</script><script>self.__next_f.push([1,"crossOrigin\":\"$undefined\"}]],\"$L16\"],null],null]},[null,[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"middleware\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L13\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L13\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L17\"],\"globalErrorComponent\":\"$18\",\"missingSlots\":\"$W19\"}]\n1a:I[80942,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"8581\",\"static/chunks/8581-a982d98f56c384e1.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"8843\",\"static/chunks/8843-00cba0b160454c4d.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"8678\",\"static/chunks/8678-15aefe1165bae785.js\",\"7093\",\"static/chunks/7093-8f66c7b92e65df99.js\",\"813\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js\"],\"SitePageNotFound\"]\n14:[\"$\",\"$L1a\",null,{}]\n1b:HC\"https://api.gitbook.com\"\n1c:HC\"https://ka-p.fontawesome.com/releases/v6.6.0/\"\n1d:HC\"https://static.gitbook.com\"\n1e:HL[\"https://integrations.gitbook.com/v1/integrations/googleanalytics/installations/f358ef7676b84cfde66faab6d1bd9057fe92c347966f2738381bb4aa08f7ca27/sites/site_ELOmj/script.js?version=150.0\",\"script\"]\n17:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"name\":\"color-scheme\",\"content\":\"light\"}],[\"$\",\"meta\",\"2\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"3\",{\"children\":\"TorchArc | Keng's Blog\"}],[\"$\",\"meta\",\"4\",{\"name\":\"description\",\"content\":\"2020/06/20\"}],[\"$\",\"meta\",\"5\",{\"name\":\"generator\",\"content\":\"GitBook (d7aa5fa)\"}],[\"$\",\"meta\",\"6\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://kengz.gitbook.io/blog/ml/torcharc\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"TorchArc | Keng's Blog\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"2020/06/20\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://kengz.gitbook.io/blog/~gitbook/ogimage/-MAHkgY0gMRpyzUqnVLP\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"TorchArc | Keng's Blog\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"2020/06/20\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:image\",\"content\":\"https://kengz.gitbook.io/blog/~gitbook/ogimage/-MAHkgY0gMRpyzUqnVLP\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2"])</script><script>self.__next_f.push([1,"Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=48\u0026height=48\u0026sign=c53efa1d\u0026sv=2\",\"type\":\"image/png\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"16\",{\"rel\":\"icon\",\"href\":\"https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=48\u0026height=48\u0026sign=c53efa1d\u0026sv=2\",\"type\":\"image/png\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"17\",{\"rel\":\"icon\",\"href\":\"https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=48\u0026height=48\u0026sign=c53efa1d\u0026sv=2\",\"type\":\"image/png\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=48\u0026height=48\u0026sign=c53efa1d\u0026sv=2\",\"type\":\"image/png\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"meta\",\"19\",{\"name\":\"next-size-adjust\"}]]\nf:null\n20:I[5145,[\"4183\",\"static/chunks/app/middleware/(site)/layout-e13b12a8cbd8766b.js\"],\"IconsProvider\"]\n21:I[75489,[\"4183\",\"static/chunks/app/middleware/(site)/layout-e13b12a8cbd8766b.js\"],\"ClientContexts\"]\n22:I[61946,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"8626\",\"static/chunks/app/middleware/(site)/error-0c18ba8fba3d14c8.js\"],\"default\"]\n23:I[35592,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"NuqsAdapter\"]\n24:I[3119,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"ClientContexts\"]\n25:I[68339,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"SpaceLayoutContextProvider\"]\n26:I[31200,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"InsightsProvider\"]\n27:I[72020,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"HeaderMobileMenu\"]\n29:\"$Sreact.suspense\"\n2a:I[86604,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"stat"])</script><script>self.__next_f.push([1,"ic/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"SearchButton\"]\n2b:I[19656,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"TOCScrollContainer\"]\n37:I[22833,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"Link\"]\n38:I[22563,[\"4183\",\"static/chunks/app/middleware/(site)/layout-e13b12a8cbd8766b.js\"],\"Icon\"]\n39:I[77964,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"SearchModal\"]\n3a:I[49780,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"LoadIntegrations\"]\n3b:I[35489,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"CookiesToast\"]\n1f:T2bc9,\n :root {\n --primary-1: 251 255 255; --contrast-primary-1: 29 29 29;\n--primary-2: 242 251 255; --contrast-primary-2: 29 29 29;\n--primary-3: 236 248 255; --contrast-primary-3: 29 29 29;\n--primary-4: 227 244 255; --contrast-primary-4: 29 29 29;\n--primary-5: 218 239 255; --contrast-primary-5: 29 29 29;\n--primary-6: 207 231 255; --contrast-primary-6: 29 29 29;\n--primary-7: 190 219 255; --contrast-primary-7: 29 29 29;\n--primary-8: 174 206 255; --contrast-primary-8: 29 29 29;\n--primary-9: 56 132 255; --contrast-primary-9: 255 255 255;\n--primary-10: 38 114 236; --contrast-primary-10: 255 255 255;\n--primary-11: 23 102 222; --contrast-primary-11: 255 255 255;\n--primary-12: 0 0 119; --contrast-primary-12: 255 255 255;\n--primary-original: 56 132 255; --contrast-primary-original: 255 255 255;\n --tint-1: 254 255 255; --contrast-tint-1: 29 29 29;\n--tint-2: 248 250 253; --contrast-tint-2: 29 29 29;\n--tint-3: 245 248 252; --contrast-tint-3: 29 29 29;\n--tint-4: 239 242 248; --contrast-tint-4: 29 29 29;\n--tint-5: 233 237 244; --contrast-tint-5: 29 29 29;\n--tint-6: 225 230 238; --contrast-tint-6: 29 29 29;\n--tint-7: 212 217 226; --contrast-tint-7: 29 29 29;\n--tint-8: 199 205 215; --contrast-tint-8: 29 29 29;\n--tint-9: 119 134 157; --contrast-tint-9: 255 255 255;\n--tint-10: 108 122 145; --contrast-tint-10: 255 255 255;\n--tint-11: 97 111 134; --contrast-tint-11: 255 255 255;\n--tint-12: 18 29 48; --contrast-tint-12: 255 255 255;\n--tint-original: 120 120 120; --contrast-tint-original: 255 255 255;\n --neutral-1: 255 255 255; --contrast-neutral-1: 29 29 29;\n--neutral-2: 250 250 250; --contrast-neutral-2: 29 29 29;\n--neutral-3: 247 247 247; --contrast-neutral-3: 29 29 29;\n--neutral-4: 242 242 242; --contrast-neutral-4: 29 29 29;\n--neutral-5: 237 237 237; --contrast-neutral-5: 29 2"])</script><script>self.__next_f.push([1,"9 29;\n--neutral-6: 229 229 229; --contrast-neutral-6: 29 29 29;\n--neutral-7: 217 217 217; --contrast-neutral-7: 29 29 29;\n--neutral-8: 204 204 204; --contrast-neutral-8: 29 29 29;\n--neutral-9: 120 120 120; --contrast-neutral-9: 255 255 255;\n--neutral-10: 121 121 121; --contrast-neutral-10: 255 255 255;\n--neutral-11: 110 110 110; --contrast-neutral-11: 255 255 255;\n--neutral-12: 29 29 29; --contrast-neutral-12: 255 255 255;\n--neutral-original: 120 120 120; --contrast-neutral-original: 255 255 255;\n\n --header-background: 56 132 255;\n --header-link: 255 255 255;\n\n --info-1: 255 255 255; --contrast-info-1: 29 29 29;\n--info-2: 250 250 250; --contrast-info-2: 29 29 29;\n--info-3: 247 247 247; --contrast-info-3: 29 29 29;\n--info-4: 242 242 242; --contrast-info-4: 29 29 29;\n--info-5: 237 237 237; --contrast-info-5: 29 29 29;\n--info-6: 229 229 229; --contrast-info-6: 29 29 29;\n--info-7: 217 217 217; --contrast-info-7: 29 29 29;\n--info-8: 204 204 204; --contrast-info-8: 29 29 29;\n--info-9: 120 120 120; --contrast-info-9: 255 255 255;\n--info-10: 121 121 121; --contrast-info-10: 255 255 255;\n--info-11: 110 110 110; --contrast-info-11: 255 255 255;\n--info-12: 29 29 29; --contrast-info-12: 255 255 255;\n--info-original: 120 120 120; --contrast-info-original: 255 255 255;\n --warning-1: 255 254 249; --contrast-warning-1: 29 29 29;\n--warning-2: 255 248 238; --contrast-warning-2: 29 29 29;\n--warning-3: 255 244 230; --contrast-warning-3: 29 29 29;\n--warning-4: 255 238 219; --contrast-warning-4: 29 29 29;\n--warning-5: 255 232 208; --contrast-warning-5: 29 29 29;\n--warning-6: 255 223 194; --contrast-warning-6: 29 29 29;\n--warning-7: 246 210 176; --contrast-warning-7: 29 29 29;\n--warning-8: 237 196 157; --contrast-warning-8: 29 29 29;\n--warning-9: 254 154 0; --contrast-warning-9: 29 29 29;\n--warning-10: 187 92 0; --contrast-warning-10: 255 255 255;\n--warning-11: 174 81 0; --contrast-warning-11: 255 255 255;\n--warning-12: 75 0 0; --contrast-warning-12: 255 255 255;\n--warning-original: 254 154 0; --contrast-warning-original: 29 29 29;\n --danger-1: 255 252 251; --contrast-danger-1: 29 29 29;\n--danger-2: 255 244 242; --contrast-danger-2: 29 29 29;\n--danger-3: 255 239 235; --contrast-danger-3: 29 29 29;\n--danger-4: 255 231 226; --contrast-danger-4: 29 29 29;\n--danger-5: 255 223 217; --contrast-danger-5: 29 29 29;\n--danger-6: 255 212 205; --contrast-danger-6: 29 29 29;\n--danger-7: 255 196 189; --contrast-danger-7: 29 29 29;\n--danger-8: 255 181 173; --contrast-danger-8: 29 29 29;\n--danger-9: 251 44 54; --contrast-danger-9: 255 255 255;\n--danger-10: 228 0 33; --contrast-danger-10: 255 255 255;\n--danger-11: 214 0 17; --contrast-danger-11: 255 255 255;\n--danger-12: 101 0 0; --contrast-danger-12: 255 255 255;\n--danger-original: 251 44 54; --contrast-danger-original: 255 255 255;\n --success-1: 251 255 251; --contrast-success-1: 29 29 29;\n--success-2: 241 254 242; --contrast-success-2: 29 29 29;\n--success-3: 234 254 236; --contrast-success-3: 29 29 29;\n--success-4: 224 251 227; --contrast-success-4: 29 29 29;\n--success-5: 214 248 218; --contrast-success-5: 29 29 29;\n--success-6: 202 242 206; --contrast-success-6: 29 29 29;\n--success-7: 185 231 190; --contrast-success-7: 29 29 29;\n--success-8: 167 220 173; --contrast-success-8: 29 29 29;\n--success-9: 0 201 80; --contrast-success-9: 29 29 29;\n--success-10: 0 152 23; --contrast-success-10: 255 255 255;\n--success-11: 0 140 0; --contrast-success-11: 255 255 255;\n--success-12: 0 47 0; --contrast-success-12: 255 255 255;\n--success-original: 0 201 80; --contrast-success-original: 29 29 29;\n }\n\n .dark {\n --primary-1: 26 29 34; --contrast-primary-1: 255 255 255;\n--primary-2: 29 35 44; --contrast-primary-2: 255 255 255;\n--primary-3: 35 44 59; --contrast-primary-3: 255 255 255;\n--primary-4: 36 48 68; --contrast-primary-4: 255 255 255;\n--primary-5: 38 54 79; --contrast-primary-5: 255 255 255;\n--primary-6: 39 58 88; --contras"])</script><script>self.__next_f.push([1,"t-primary-6: 255 255 255;\n--primary-7: 45 68 104; --contrast-primary-7: 255 255 255;\n--primary-8: 51 78 121; --contrast-primary-8: 255 255 255;\n--primary-9: 56 132 255; --contrast-primary-9: 255 255 255;\n--primary-10: 63 139 255; --contrast-primary-10: 255 255 255;\n--primary-11: 111 189 255; --contrast-primary-11: 29 29 29;\n--primary-12: 172 255 255; --contrast-primary-12: 29 29 29;\n--primary-original: 56 132 255; --contrast-primary-original: 255 255 255;\n --tint-1: 29 29 29; --contrast-tint-1: 255 255 255;\n--tint-2: 34 35 35; --contrast-tint-2: 255 255 255;\n--tint-3: 43 44 45; --contrast-tint-3: 255 255 255;\n--tint-4: 46 48 50; --contrast-tint-4: 255 255 255;\n--tint-5: 52 54 56; --contrast-tint-5: 255 255 255;\n--tint-6: 56 58 61; --contrast-tint-6: 255 255 255;\n--tint-7: 65 68 71; --contrast-tint-7: 255 255 255;\n--tint-8: 75 78 82; --contrast-tint-8: 255 255 255;\n--tint-9: 126 133 145; --contrast-tint-9: 255 255 255;\n--tint-10: 137 145 157; --contrast-tint-10: 255 255 255;\n--tint-11: 185 193 205; --contrast-tint-11: 29 29 29;\n--tint-12: 247 255 255; --contrast-tint-12: 29 29 29;\n--tint-original: 120 120 120; --contrast-tint-original: 255 255 255;\n --neutral-1: 29 29 29; --contrast-neutral-1: 255 255 255;\n--neutral-2: 34 34 34; --contrast-neutral-2: 255 255 255;\n--neutral-3: 44 44 44; --contrast-neutral-3: 255 255 255;\n--neutral-4: 48 48 48; --contrast-neutral-4: 255 255 255;\n--neutral-5: 53 53 53; --contrast-neutral-5: 255 255 255;\n--neutral-6: 57 57 57; --contrast-neutral-6: 255 255 255;\n--neutral-7: 67 67 67; --contrast-neutral-7: 255 255 255;\n--neutral-8: 78 78 78; --contrast-neutral-8: 255 255 255;\n--neutral-9: 120 120 120; --contrast-neutral-9: 255 255 255;\n--neutral-10: 144 144 144; --contrast-neutral-10: 255 255 255;\n--neutral-11: 192 192 192; --contrast-neutral-11: 29 29 29;\n--neutral-12: 255 255 255; --contrast-neutral-12: 29 29 29;\n--neutral-original: 120 120 120; --contrast-neutral-original: 255 255 255;\n\n --header-background: 56 132 255;\n --header-link: 255 255 255;\n\n --info-1: 29 29 29; --contrast-info-1: 255 255 255;\n--info-2: 34 34 34; --contrast-info-2: 255 255 255;\n--info-3: 44 44 44; --contrast-info-3: 255 255 255;\n--info-4: 48 48 48; --contrast-info-4: 255 255 255;\n--info-5: 53 53 53; --contrast-info-5: 255 255 255;\n--info-6: 57 57 57; --contrast-info-6: 255 255 255;\n--info-7: 67 67 67; --contrast-info-7: 255 255 255;\n--info-8: 78 78 78; --contrast-info-8: 255 255 255;\n--info-9: 120 120 120; --contrast-info-9: 255 255 255;\n--info-10: 144 144 144; --contrast-info-10: 255 255 255;\n--info-11: 192 192 192; --contrast-info-11: 29 29 29;\n--info-12: 255 255 255; --contrast-info-12: 29 29 29;\n--info-original: 120 120 120; --contrast-info-original: 255 255 255;\n --warning-1: 32 28 25; --contrast-warning-1: 255 255 255;\n--warning-2: 40 33 26; --contrast-warning-2: 255 255 255;\n--warning-3: 53 41 30; --contrast-warning-3: 255 255 255;\n--warning-4: 60 44 29; --contrast-warning-4: 255 255 255;\n--warning-5: 69 49 29; --contrast-warning-5: 255 255 255;\n--warning-6: 76 52 27; --contrast-warning-6: 255 255 255;\n--warning-7: 90 61 30; --contrast-warning-7: 255 255 255;\n--warning-8: 104 70 34; --contrast-warning-8: 255 255 255;\n--warning-9: 254 154 0; --contrast-warning-9: 29 29 29;\n--warning-10: 213 116 0; --contrast-warning-10: 255 255 255;\n--warning-11: 255 165 34; --contrast-warning-11: 29 29 29;\n--warning-12: 255 229 115; --contrast-warning-12: 29 29 29;\n--warning-original: 254 154 0; --contrast-warning-original: 29 29 29;\n --danger-1: 34 27 26; --contrast-danger-1: 255 255 255;\n--danger-2: 45 30 29; --contrast-danger-2: 255 255 255;\n--danger-3: 60 37 35; --contrast-danger-3: 255 255 255;\n--danger-4: 69 38 35; --contrast-danger-4: 255 255 255;\n--danger-5: 80 41 38; --contrast-danger-5: 255 255 255;\n--danger-6: 89 41 38; --contrast-danger-6: 255 255 255;\n--danger-7: 105 48 44; --contrast-danger-7: 255 255 255;\n--danger-8: 121 54 50; --contrast-danger-8: 255 "])</script><script>self.__next_f.push([1,"255 255;\n--danger-9: 251 44 54; --contrast-danger-9: 255 255 255;\n--danger-10: 255 52 59; --contrast-danger-10: 255 255 255;\n--danger-11: 255 113 108; --contrast-danger-11: 255 255 255;\n--danger-12: 255 180 169; --contrast-danger-12: 29 29 29;\n--danger-original: 251 44 54; --contrast-danger-original: 255 255 255;\n --success-1: 26 31 26; --contrast-success-1: 255 255 255;\n--success-2: 28 37 29; --contrast-success-2: 255 255 255;\n--success-3: 33 48 35; --contrast-success-3: 255 255 255;\n--success-4: 33 54 35; --contrast-success-4: 255 255 255;\n--success-5: 34 61 38; --contrast-success-5: 255 255 255;\n--success-6: 32 66 38; --contrast-success-6: 255 255 255;\n--success-7: 37 78 44; --contrast-success-7: 255 255 255;\n--success-8: 41 90 50; --contrast-success-8: 255 255 255;\n--success-9: 0 201 80; --contrast-success-9: 29 29 29;\n--success-10: 0 176 54; --contrast-success-10: 255 255 255;\n--success-11: 62 227 106; --contrast-success-11: 29 29 29;\n--success-12: 139 255 168; --contrast-success-12: 29 29 29;\n--success-original: 0 201 80; --contrast-success-original: 29 29 29;\n }\n 16:[\"$\",\"html\",null,{\"suppressHydrationWarning\":true,\"lang\":\"en\",\"className\":\"scroll-pt-[76px] theme-clean no-tint sidebar-default sidebar-list-default links-default __variable_f9f441 __variable_96046e __variable_7d852e\",\"children\":[[\"$\",\"head\",null,{\"children\":[null,null,[\"$\",\"style\",null,{\"nonce\":\"$undefined\",\"children\":\"$1f\"}]]}],[\"$\",\"body\",null,{\"className\":\"bg-tint-base theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint\",\"children\":[\"$\",\"$L20\",null,{\"assetsURL\":\"https://ka-p.fontawesome.com/releases/v6.6.0/\",\"assetsURLToken\":\"a463935e93\",\"assetsByStyles\":{\"custom-icons\":{\"assetsURL\":\"https://static.gitbook.com/~gitbook/static/icons\"}},\"iconStyle\":\"regular\",\"children\":[\"$\",\"$L21\",null,{\"language\":{\"locale\":\"en\",\"powered_by_gitbook\":\"Powered by GitBook\",\"sponsored_via_gitbook\":\"Sponsored via GitBook\",\"switch_to_dark_theme\":\"Switch to dark theme\",\"switch_to_light_theme\":\"Switch to light theme\",\"switch_to_system_theme\":\"Switch to system theme\",\"search\":\"Search\",\"search_or_ask\":\"Ask or search\",\"search_input_placeholder\":\"Search content\",\"search_ask_input_placeholder\":\"Search content or ask a question\",\"search_no_results\":\"No results for \\\"${1}\\\".\",\"search_scope_space\":\"$${1}\",\"search_scope_all\":\"All content\",\"search_ask\":\"Ask \\\"${1}\\\"\",\"search_ask_description\":\"Find the answer with AI\",\"search_ask_sources\":\"Sources\",\"search_ask_sources_no_answer\":\"Related pages\",\"search_ask_no_answer\":\"An answer could not be found for your question. You could try rephrasing it, or be more specific.\",\"search_ask_error\":\"Something went wrong. Please try again later.\",\"on_this_page\":\"On this page\",\"next_page\":\"Next\",\"previous_page\":\"Previous\",\"page_last_modified\":\"Last updated ${1}\",\"was_this_helpful\":\"Was this helpful?\",\"was_this_helpful_positive\":\"Yes, it was!\",\"was_this_helpful_neutral\":\"Not sure\",\"was_this_helpful_negative\":\"No\",\"was_this_helpful_thank_you\":\"Thank you!\",\"was_this_helpful_comment\":\"Anything you'd like to add?\",\"submit\":\"Submit\",\"annotation_button_label\":\"Open annotation\",\"code_copied\":\"Copied!\",\"code_copy\":\"Copy\",\"table_of_contents_button_label\":\"Open table of contents\",\"cookies_title\":\"Cookies\",\"cookies_prompt\":\"This site uses cookies to deliver its service and to analyse traffic. By browsing this site, you accept the ${1}.\",\"cookies_prompt_privacy\":\"privacy policy\",\"cookies_accept\":\"Accept\",\"cookies_reject\":\"Reject\",\"cookies_close\":\"Close\",\"edit_on_git\":\"Edit on ${1}\",\"notfound_title\":\"Page not found\",\"notfound\":\"The page you are looking for doesn't exist.\",\"unexpected_error_title\":\"An error occurred\",\"unexpected_error\":\"Sorry, an unexpected error has occurred. Please try again later.\",\"unexpected_error_retry\":\"Retry\",\"pdf_download\":\"Export as PDF\",\"pdf_goback\":\"Go back to content\",\"pdf_print\":\"Print or Save as PDF\",\"pdf_page_of\":\"$${1} of ${2}\",\"pdf_mode_only_page\":\"Only this page\",\"pdf_mode_all\":\"All pages\",\"pdf_limi"])</script><script>self.__next_f.push([1,"t_reached\":\"Couldn't generate the PDF for ${1} pages, generation stopped at ${2}.\",\"pdf_limit_reached_continue\":\"Extend with ${1} more pages.\",\"more\":\"More\"},\"children\":[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"middleware\",\"children\",\"(site)\",\"children\"],\"error\":\"$22\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L13\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]}]}]}]]}]\n15:[\"$\",\"$L23\",null,{\"children\":[\"$\",\"$L24\",null,{\"nonce\":\"$undefined\",\"forcedTheme\":\"light\",\"children\":[[\"$\",\"$L25\",null,{\"basePath\":\"/blog/\",\"children\":[\"$\",\"$L26\",null,{\"enabled\":true,\"appURL\":\"https://app.gitbook.com\",\"apiHost\":\"https://api.gitbook.com\",\"organizationId\":\"c1fMmGrujzxVxYDiFwSR\",\"siteId\":\"site_ELOmj\",\"siteSectionId\":null,\"siteSpaceId\":\"sitesp_cAjxp\",\"siteShareKey\":null,\"revisionId\":\"ghNSnlL7v2qU29QJZxbj\",\"spaceId\":\"-M5KBcEvOMRAQtKb5jHb\",\"visitorAuthClaims\":{},\"children\":[[\"$\",\"header\",null,{\"id\":\"site-header\",\"className\":\"flex flex-col h-[64px] sticky top-0 z-30 w-full flex-none shadow-[0px_1px_0px] shadow-tint-12/2 bg-tint-base/9 theme-muted:bg-tint-subtle/9 theme-bold-tint:bg-tint-subtle/9 theme-gradient:bg-gradient-primary theme-gradient-tint:bg-gradient-tint contrast-more:bg-tint-base text-sm backdrop-blur-lg\",\"children\":[[\"$\",\"div\",null,{\"className\":\"theme-bold:bg-header-background theme-bold:shadow-[0px_1px_0px] theme-bold:shadow-tint-12/2\",\"children\":[\"$\",\"div\",null,{\"className\":\"scroll-nojump\",\"children\":[\"$\",\"div\",null,{\"className\":\"gap-4 lg:gap-6 flex items-center justify-between w-full py-3 min-h-16 sm:h-16 px-4 sm:px-6 md:px-8 max-w-screen-2xl mx-auto page-full-width:max-w-full\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex max-w-full lg:basis-72 min-w-0 shrink items-center justify-start gap-2 lg:gap-4\",\"children\":[[\"$\",\"$L27\",null,{\"className\":\"lg:hidden -ml-2 text-tint-strong theme-bold:text-header-link hover:bg-tint-hover theme-bold:hover:bg-header-link/3 page-no-toc:hidden\"}],\"$L28\"]}],[\"$\",\"div\",null,{\"className\":\"flex grow-0 shrink-0 md:basis-56 justify-self-end order-last\",\"children\":[\"$\",\"$29\",null,{\"fallback\":null,\"children\":[\"$\",\"$L2a\",null,{\"style\":[\"theme-bold:bg-header-link/2\",\"theme-bold:hover:bg-header-link/3\",\"theme-bold:text-header-link/8\",\"theme-bold:hover:text-header-link\",\"theme-bold:ring-header-link/4\",\"theme-bold:hover:ring-header-link/5\",\"theme-bold:[\u0026_svg]:text-header-link/10\",\"theme-bold:[\u0026_.shortcut]:text-header-link/8\",\"theme-bold:contrast-more:bg-header-background\",\"theme-bold:contrast-more:text-header-link\",\"theme-bold:contrast-more:ring-header-link\",\"theme-bold:contrast-more:hover:bg-header-background\",\"theme-bold:contrast-more:hover:ring-header-link\",\"theme-bold:contrast-more:focus:text-header-link\",\"theme-bold:contrast-more:focus:bg-header-background\",\"theme-bold:contrast-more:focus:ring-header-link\",\"theme-bold:shadow-none\",\"theme-bold:hover:shadow-none\",\"whitespace-nowrap\"],\"children\":[\"$\",\"span\",null,{\"className\":\"flex-1\",\"children\":[\"Search\",\"...\"]}]}]}]}],false]}]}]}],null]}],[\"$\",\"div\",null,{\"className\":\"scroll-nojump\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col lg:flex-row px-4 sm:px-6 md:px-8 max-w-screen-2xl mx-auto page-full-width:max-w-full\",\"children\":[[\"$\",\"aside\",null,{\"data-testid\":\"table-of-contents\",\"className\":\"group text-sm grow-0 shrink-0 basis-full lg:basis-72 page-no-toc:lg:basis-56 relative z-[1] lg:sticky lg:top-0 lg:h-screen site-header:lg:top-16 site-header:lg:h-[calc(100vh_-_4rem)] site-header-sections:lg:top-[6.75rem] site-header-sections:lg:h-[calc(100vh_-_6.75rem)] pt-6 pb-4 sidebar-filled:lg:pr-6 page-no-toc:lg:pr-0 hidden navigation-open:!flex lg:flex page-no-toc:lg:hidden page-no-toc:xl:flex site-header-none:page-no-toc:lg:flex flex-col gap-4 navigation-open:border-b border-tint-subtle\",\"children\":[null,[\"$\",\"div\",null,{\"className\":\"lg:-ms-5 overflow-hidden relative flex flex-col flex-grow sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:bg-tint-base [html"])</script><script>self.__next_f.push([1,".sidebar-filled.theme-bold.tint_\u0026]:bg-tint-base page-no-toc:!bg-transparent sidebar-filled:rounded-xl straight-corners:rounded-none\",\"children\":[[\"$\",\"div\",null,{\"className\":\"px-5 *:my-4\",\"children\":[false,false,false]}],[\"$\",\"$L2b\",null,{\"className\":\"flex flex-grow flex-col p-2 lg:pb-20 overflow-y-auto lg:gutter-stable [\u0026::-webkit-scrollbar]:bg-transparent [\u0026::-webkit-scrollbar-thumb]:bg-transparent group-hover:[\u0026::-webkit-scrollbar]:bg-tint-subtle group-hover:[\u0026::-webkit-scrollbar-thumb]:bg-tint-7 group-hover:[\u0026::-webkit-scrollbar-thumb:hover]:bg-tint-8\",\"children\":[[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-0.5 page-no-toc:hidden sidebar-list-line:border-l border-tint-subtle\",\"children\":[\"$L2c\",[\"$\",\"li\",null,{\"className\":\"flex flex-col group/page-group-item\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 px-3 z-[1] sticky -top-5 pt-6 group-first/page-group-item:-mt-5 pb-3 -mb-1.5 text-xs tracking-wide font-semibold uppercase [mask-image:linear-gradient(rgba(0,0,0,1)_70%,rgba(0,0,0,0))] bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:bg-tint-base [html.sidebar-filled.theme-bold.tint_\u0026]:bg-tint-base [html.sidebar-default.theme-gradient_\u0026]:bg-gradient-primary [html.sidebar-default.theme-gradient.tint_\u0026]:bg-gradient-tint\",\"children\":[\"$undefined\",\"ML\"]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-0.5\",\"children\":[\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\"]}]]}],[\"$\",\"li\",null,{\"className\":\"flex flex-col group/page-group-item\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 px-3 z-[1] sticky -top-5 pt-6 group-first/page-group-item:-mt-5 pb-3 -mb-1.5 text-xs tracking-wide font-semibold uppercase [mask-image:linear-gradient(rgba(0,0,0,1)_70%,rgba(0,0,0,0))] bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle theme-bold-tint:bg-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:bg-tint-base [html.sidebar-filled.theme-bold.tint_\u0026]:bg-tint-base [html.sidebar-default.theme-gradient_\u0026]:bg-gradient-primary [html.sidebar-default.theme-gradient.tint_\u0026]:bg-gradient-tint\",\"children\":[\"$undefined\",\"Engineering\"]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-col gap-y-0.5\",\"children\":[\"$L31\",\"$L32\",\"$L33\",\"$L34\"]}]]}],\"$L35\",\"$L36\"]}],[\"$\",\"div\",null,{\"className\":\"relative z-[2] lg:absolute left-0 right-2 bottom-0 pointer-events-none sidebar-filled:pl-2 sidebar-filled:pb-2 sidebar-filled:page-no-toc:p-0 bg-tint-base sidebar-filled:bg-tint-subtle theme-muted:bg-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:bg-tint-base [html.sidebar-filled.theme-bold.tint_\u0026]:bg-tint-base before:hidden lg:before:block before:content-[\\\"\\\"] before:absolute before:inset-x-0 before:bottom-full before:h-8 before:bg-gradient-to-b before:from-transparent before:to-tint-base sidebar-filled:before:to-tint-subtle theme-muted:before:to-tint-subtle theme-bold-tint:before:to-tint-subtle [html.sidebar-filled.theme-muted_\u0026]:before:to-tint-base [html.sidebar-filled.theme-bold.tint_\u0026]:before:to-tint-base page-no-toc:before:!to-transparent\",\"children\":[\"$\",\"$L37\",null,{\"target\":\"_blank\",\"href\":\"https://www.gitbook.com/?utm_source=content\u0026utm_medium=trademark\u0026utm_campaign=-M5KBcEvOMRAQtKb5jHb\",\"className\":\"text-sm font-semibold text-tint flex flex-row items-center px-5 py-4 sidebar-filled:px-3 sidebar-filled:page-no-toc:lg:px-5 rounded-lg straight-corners:rounded-none hover:bg-tint hover:text-tint-strong ring-2 lg:ring-1 ring-inset ring-tint-subtle transition-colors pointer-events-auto\",\"insights\":{\"type\":\"trademark_click\",\"placement\":\"sidebar\"},\"children\":[[\"$\",\"$L38\",null,{\"icon\":\"gitbook\",\"className\":\"size-5 shrink-0\"}],[\"$\",\"span\",null,{\"className\":\"ml-3\",\"children\":\"Powered by GitBook\"}]]}]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col\",\"children\":[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"middleware\",\"children\",\"(site)\",\"children\",\"(content)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L13\",null,{}],\"templateStyles\":"])</script><script>self.__next_f.push([1,"\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]}]]}]}],null,[\"$\",\"$29\",null,{\"fallback\":null,\"children\":[\"$\",\"$L39\",null,{\"spaceTitle\":\"Keng's Blog\",\"withAsk\":false,\"isMultiVariants\":false}]}]]}]}],[[\"$\",\"$L3a\",null,{}],[[\"$\",\"script\",\"https://integrations.gitbook.com/v1/integrations/googleanalytics/installations/f358ef7676b84cfde66faab6d1bd9057fe92c347966f2738381bb4aa08f7ca27/sites/site_ELOmj/script.js?version=150.0\",{\"async\":true,\"src\":\"https://integrations.gitbook.com/v1/integrations/googleanalytics/installations/f358ef7676b84cfde66faab6d1bd9057fe92c347966f2738381bb4aa08f7ca27/sites/site_ELOmj/script.js?version=150.0\",\"nonce\":\"$undefined\"}]]],[\"$\",\"$29\",null,{\"fallback\":null,\"children\":[\"$\",\"$L3b\",null,{\"privacyPolicy\":\"$undefined\"}]}],[\"$\",\"script\",null,{\"nonce\":\"$undefined\",\"suppressHydrationWarning\":true,\"data-cfasync\":\"false\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n document.addEventListener(\\\"DOMContentLoaded\\\", () =\u003e {\\n if (Array.from(document.scripts).find(script =\u003e script.src.includes('rocket-loader.min.js'))) {\\n const alert = document.createElement('div');\\n alert.className = 'p-4 mb-4 text-sm text-red-800 rounded-lg bg-red-50 mt-8 mx-8';\\n alert.innerHTML = `\\n \u003cstrong\u003eError in site configuration:\u003c/strong\u003e\\n It looks like ${window.location.hostname} has been incorrectly configured in Cloudflare. This may lead to unexpected behavior or issues with the page loading. If you are the owner of this site, please refer to \u003ca href=\\\"https://docs.gitbook.com/published-documentation/custom-domain/configure-dns#are-you-using-cloudflare\\\" class=\\\"underline\\\"\u003eGitBook's documentation\u003c/a\u003e for steps to fix the problem.\\n `;\\n\\n document.body.prepend(alert);\\n }\\n });\"}}],\"$L3c\"]}]}]\n3f:I[66185,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"ToggleableLinkItem\"]\n28:[\"$\",\"$L37\",null,{\"href\":\"https://kengz.gitbook.io/blog/\",\"className\":\"group/headerlogo min-w-0 shrink flex items-center\",\"children\":[[\"$L3d\",\"$L3e\"],[\"$\",\"div\",null,{\"className\":\"text-pretty line-clamp-2 tracking-tight max-w-[18ch] lg:max-w-[24ch] font-semibold ms-3 text-base/tight lg:text-lg/tight text-tint-strong theme-bold:text-header-link\",\"children\":\"Keng's Blog\"}]]}]\n2c:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/\",\"pathname\":\"\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-M5KBfHajq_-kWwmk-K4\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Keng's Blog\"}]}]\n2d:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/ml/running-wandb-on-kubernetes\",\"pathname\":\"ml/running-wandb-on-kubernetes\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MAHk614mgFNczHfbmPW\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Running WandB on Kubernetes\"}]}]\n2e:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/ml/torcharc\",\"pathname\":\"ml/torcharc\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MAHkgY0gMRpyzUqnVLP\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"TorchArc\"}]}]\n2f:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/ml/distributed-training-with-torchelastic-on-kubernetes\",\"pathname\":\"ml/distributed-training-with-torchelastic-on-kubernetes\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-Mew4Tx_YTDHMHUspyI7\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Distributed Training with TorchElastic on Kubernetes\"}]}]\n30:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/ml/feature-"])</script><script>self.__next_f.push([1,"transform\",\"pathname\":\"ml/feature-transform\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"UgcRZuOqs3eSbIPJKjXm\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Feature Transform\"}]}]\n31:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/engineering/github-actions-for-python-project\",\"pathname\":\"engineering/github-actions-for-python-project\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-M5KBp1AM15l2ewYK3Ua\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Github Actions for Python Project\"}]}]\n32:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/engineering/ubuntu-gpu-server-setup\",\"pathname\":\"engineering/ubuntu-gpu-server-setup\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MAHofXnS8nc7OEwb1Mz\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Ubuntu GPU Server Setup\"}]}]\n33:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/engineering/setting-up-a-private-kubernetes-cluster\",\"pathname\":\"engineering/setting-up-a-private-kubernetes-cluster\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MAHkRuAAqE_T6IMDEiu\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Setting up a private Kubernetes cluster\"}]}]\n34:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/engineering/setting-up-a-private-ml-kubernetes-cluster-with-k0s\",\"pathname\":\"engineering/setting-up-a-private-ml-kubernetes-cluster-with-k0s\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MdsdSyb1lXmQPOQX_OP\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Setting up a private GPU Kubernetes cluster with K0s\"}]}]\n35:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/setting-up-a-private-kubernetes-cluster-with-k0sctl\",\"pathname\":\"setting-up-a-private-kubernetes-cluster-with-k0sctl\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"HkirSAsaFtKN9mOAS3bt\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Setting up a private Kubernetes cluster with k0sctl\"}]}]\n36:[\"$\",\"li\",null,{\"className\":\"flex flex-col\",\"children\":[\"$\",\"$L3f\",null,{\"href\":\"/blog/setting-up-kubernetes-addons\",\"pathname\":\"setting-up-kubernetes-addons\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"He5ohFTFsiArdW9twsRz\"},\"position\":\"sidebar\"}},\"descendants\":null,\"children\":\"Setting up Kubernetes Addons\"}]}]\n3c:null\n40:T49f,https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=1\u0026quality=100\u0026sign=c53efa1d\u0026sv=2 32w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=2\u0026quality=100\u0026sign=c53efa1d\u0026sv=2 64w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=3\u0026quality=100\u0026sign=c53efa1d\u0026sv=2 96w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=4\u0026quality=100\u0026sign=c53efa1d\u0026sv=2 128w3e:[\"$\",\"img\",null,{\"alt\":\"\",\"style\":{\"aspectRatio\":\"1\"},\"loading\":\"lazy\",\"fetchPriority\":\"high\",\"data-visual-test\":\"$undefined\",\"className\":\"hidden dark:block object-contain size-8\",\"src\":\"https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5"])</script><script>self.__next_f.push([1,"KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=4\u0026quality=100\u0026sign=c53efa1d\u0026sv=2\",\"srcSet\":\"$40\",\"sizes\":\"32px\",\"width\":256,\"height\":256}]\n41:T49f,https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=1\u0026quality=100\u0026sign=c53efa1d\u0026sv=2 32w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=2\u0026quality=100\u0026sign=c53efa1d\u0026sv=2 64w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=3\u0026quality=100\u0026sign=c53efa1d\u0026sv=2 96w, https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=4\u0026quality=100\u0026sign=c53efa1d\u0026sv=2 128w3d:[\"$\",\"img\",null,{\"alt\":\"\",\"style\":{\"aspectRatio\":\"1\"},\"loading\":\"$undefined\",\"fetchPriority\":\"high\",\"data-visual-test\":\"$undefined\",\"className\":\"block dark:hidden object-contain size-8\",\"src\":\"https://kengz.gitbook.io/~gitbook/image?url=https%3A%2F%2F3782595534-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fspaces%252F-M5KBcEvOMRAQtKb5jHb%252Favatar-1587346363780.png%3Fgeneration%3D1587346364098105%26alt%3Dmedia\u0026width=32\u0026dpr=4\u0026quality=100\u0026sign=c53efa1d\u0026sv=2\",\"srcSet\":\"$41\",\"sizes\":\"32px\",\"width\":256,\"height\":256}]\n"])</script><script>self.__next_f.push([1,"43:I[75632,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"8581\",\"static/chunks/8581-a982d98f56c384e1.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"8843\",\"static/chunks/8843-00cba0b160454c4d.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"8678\",\"static/chunks/8678-15aefe1165bae785.js\",\"7093\",\"static/chunks/7093-8f66c7b92e65df99.js\",\"813\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js\"],\"PageFeedbackForm\"]\n44:I[93952,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"8581\",\"static/chunks/8581-a982d98f56c384e1.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"8843\",\"static/chunks/8843-00cba0b160454c4d.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"8678\",\"static/chunks/8678-15aefe1165bae785.js\",\"7093\",\"static/chunks/7093-8f66c7b92e65df99.js\",\"813\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js\"],\"Ad\"]\n45:I[46451,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"8581\",\"static/chunks/8581-a982d98f56c384e1.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"8843\",\"static/chunks/8843-00cba0b160454c4d.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"8678\",\"static/chunks/8678-15aefe1165bae785.js\",\"7093\",\"static/chunks/7093-8f66c7b92e65df99.js\",\"813\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js\"],\"PreservePageLayout\"]\n47:\"$Sreact.fragment\"\n4e:I[18742,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"8581\",\"static/chunks/8581-a982d98f56c384e1.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"8843\",\"static/chunks/8843-00cba0b160454c4d.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-"])</script><script>self.__next_f.push([1,"31d06db443871717.js\",\"8678\",\"static/chunks/8678-15aefe1165bae785.js\",\"7093\",\"static/chunks/7093-8f66c7b92e65df99.js\",\"813\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js\"],\"DynamicTabs\"]\n5a:I[66819,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"DateRelative\"]\n5b:I[26700,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"2241\",\"static/chunks/2241-ff00605587a5640e.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"6119\",\"static/chunks/app/middleware/(site)/(content)/layout-3d2593dad32bb87e.js\"],\"TrackPageViewEvent\"]\n5c:I[96498,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"8581\",\"static/chunks/8581-a982d98f56c384e1.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"8843\",\"static/chunks/8843-00cba0b160454c4d.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"8678\",\"static/chunks/8678-15aefe1165bae785.js\",\"7093\",\"static/chunks/7093-8f66c7b92e65df99.js\",\"813\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js\"],\"PageClientLayout\"]\n10:[null,[\"$\",\"div\",null,{\"className\":\"flex grow flex-row-reverse justify-end\",\"children\":[[\"$\",\"aside\",null,{\"className\":\"group/aside hidden xl:flex flex-col basis-56 grow-0 shrink-0 break-anywhere text-tint contrast-more:text-tint-strong sticky lg:top-0 lg:max-h-screen site-header:lg:top-16 site-header:lg:max-h-[calc(100vh_-_4rem)] site-header-sections:lg:top-[6.75rem] site-header-sections:lg:max-h-[calc(100vh_-_6.75rem)] page-api-block:xl:max-2xl:z-10 page-api-block:xl:max-2xl:fixed page-api-block:xl:max-2xl:right-8 page-api-block:xl:max-2xl:w-56 page-api-block:xl:max-2xl:bg-tint/9 page-api-block:xl:max-2xl:contrast-more:bg-tint page-api-block:xl:max-2xl:backdrop-blur-lg page-api-block:xl:max-2xl:border page-api-block:xl:max-2xl:border-tint page-api-block:xl:max-2xl:hover:shadow-lg page-api-block:xl:max-2xl:hover:shadow-tint-12/1 page-api-block:xl:max-2xl:dark:hover:shadow-tint-1/1 page-api-block:xl:max-2xl:rounded-md page-api-block:xl:max-2xl:h-auto page-api-block:xl:max-2xl:my-8 page-api-block:p-2\",\"children\":[[[\"$\",\"div\",null,{\"className\":\"hidden page-api-block:xl:max-2xl:flex text-xs tracking-wide font-semibold uppercase flex-row items-center gap-2\",\"children\":[[\"$\",\"$L38\",null,{\"icon\":\"block-quote\",\"className\":\"size-3\"}],\"On this page\",[\"$\",\"$L38\",null,{\"icon\":\"chevron-down\",\"className\":\"size-3 opacity-6 ml-auto page-api-block:xl:max-2xl:group-hover/aside:hidden\"}]]}],[\"$\",\"div\",null,{\"className\":\"overflow-y-auto overflow-x-visible flex flex-col shrink pb-12 sticky lg:top:0 site-header:lg:top-16 site-header-sections:lg:top-[6.75rem] gap-6 pt-8 page-api-block:xl:max-2xl:py-0 page-api-block:xl:max-2xl:hidden page-api-block:xl:max-2xl:group-hover/aside:flex\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":null,\"children\":\"$L42\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 sidebar-list-default:px-3 border-t first:border-none border-tint-subtle py-4 first:pt-0 page-api-block:xl:max-2xl:px-3 empty:hidden\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":null,\"children\":[\"$\",\"$L43\",null,{\"pageId\":\"-MAHkgY0gMRpyzUqnVLP\",\"className\":\"mt-2\"}]}],null,null]}]]}]],[\"$\",\"div\",null,{\"className\":\"sticky bottom-0 z-10 mt-auto flex flex-col bg-tint-base theme-bold-tint:bg-tint-subtle theme-gradient-tint:bg-gradient-tint theme-gradient:bg-gradient-primary theme-muted:bg-tint-subtle pb-4 page-api-block:xl:max-2xl:hidden page-api-block:xl:max-2xl:pb-0 page-api-block:xl:max-2xl:group-hover/aside:flex page-api-block:xl:max-2xl:bg-transparent\",\"children\":[null,[\"$\","])</script><script>self.__next_f.push([1,"\"$L44\",null,{\"zoneId\":null,\"placement\":\"aside\",\"spaceId\":\"-M5KBcEvOMRAQtKb5jHb\",\"siteAdsStatus\":\"$undefined\",\"ignore\":false,\"style\":\"$undefined\"}]]}]]}],[[\"$\",\"main\",null,{\"className\":\"relative min-w-0 flex-1 py-8 lg:px-12 break-anywhere page-api-block:xl:max-2xl:pr-0 page-api-block:mx-auto page-api-block:max-w-screen-2xl page-default-width page-has-toc\",\"children\":[[\"$\",\"$L45\",null,{\"asFullWidth\":false}],null,\"$L46\",[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4\",\"children\":[[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undef"])</script><script>self.__next_f.push([1,"ined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"example-usage\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-tr"])</script><script>self.__next_f.push([1,"ansparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"convnet\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] "])</script><script>self.__next_f.push([1,"[max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"mlp\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-1\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"time-series-transformer\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-2\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoo"])</script><script>self.__next_f.push([1,"p_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"dag-hydra\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-3\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid gri"])</script><script>self.__next_f.push([1,"d-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"optimizer\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],[\"$\",\"div\",null,{\"id\":\"undefined-4\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}]]}],\"children\":[\"$\",\"div\",null,{\"className\":\"grid [\u0026\u003e*+*]:mt-5 whitespace-pre-wrap\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"Building modular PyTorch models for my projects in the past years has prompted me to use a config-based approach to define model architecture. Over time I have iteratively refined the method, and recently I felt it has become sufficiently mature to be open sourced.\"}]]]}],[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"The project is known as \"}]],\"$L48\",[[\"$\",\"$47\",\"0\",{\"children\":\": Build PyTorch networks by specifying architectures. You can install it from pip:\"}]]]}],\"$L49\",[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\","])</script><script>self.__next_f.push([1,"\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"My experience from building quite a lot of models for DL and RL (which can have unconventional architecture) has resulted in the following observations:\"}]]]}],[\"$\",\"ul\",null,{\"className\":\"min-w-0 space-y-2 mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col space-y-2\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"most models are built with common components and hyperparameters - layers, width, activation, norm, dropout, init, etc. These can be specified via a config with the structure of a JSON/YAML.\"}]]]}]]}]]}],[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col space-y-2\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"using config-based architecture frees us from frequent hard-code changes, while also immediately allow for hyperparameter optimization on the entire architecture. Yes, you can do NAS (neural architecture search) quite easily.\"}]]]}]]}]]}],[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col space-y-2\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"sometimes we wish to compose models together, e.g. a hybrid network with a conv net and MLP for bi-modal inputs, joined together in the middle with another MLP, and split to multiple outputs for multi-modal controls.\"}]]]}]]}]]}],[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col space-y-2\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"The composed networks is always a DAG. This means it can be specified via a JSON/YAML structure too (this can be proven mathematically, but it's not why we're here).\"}]]]}]]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\""])</script><script>self.__next_f.push([1,",\"0\",{\"children\":\"These essentially formed the design requirement for TorchArc. Additionally, I've also added a \"}],[\"$\",\"$47\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"carry_forward\"}]}],[\"$\",\"$47\",\"2\",{\"children\":\" method which accepts a TensorTuple input, forward-pass any tensors in it by name-matching, and carry any unused tensors in the output. This allows a multi-modal input to be carried and forward-passed all the way until the output.\"}]]]}],[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"Let's jump straight into TorchArc.\"}]]]}],[\"$\",\"h2\",null,{\"id\":\"example-usage\",\"className\":\"text-3xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#example-usage\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start leading-tight\",\"children\":[\"$\",\"$L38\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"Example Usage\"}]]]}]]}],[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"Given just the architecture, \"}],[\"$\",\"$47\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"torcharc\"}]}],[\"$\",\"$47\",\"2\",{\"children\":\" can build generic DAG (directed acyclic graph) of nn modules, which consists of:\"}]]]}],[\"$\",\"ul\",null,{\"className\":\"min-w-0 space-y-2 mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col space-y-2\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"single-input-output modules: \"}],[\"$\",\"$47\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"Conv1d, Conv2d, Conv3d, Linear, PTTSTransformer, TSTransformer\"}]}],[\"$\",\"$47\",\"2\",{\"children\":\" or any other valid nn.Module\"}]]]}]]}]]}],[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col space-y-2\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:i"])</script><script>self.__next_f.push([1,"s(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"fork modules: \"}],[\"$\",\"$47\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"ReuseFork, SplitFork\"}]}]]]}]]}]]}],[\"$\",\"li\",null,{\"className\":\"leading-normal flex items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint\",\"children\":[\"$\",\"div\",null,{\"className\":\"before:font-var before:content-[--pseudoBefore--content]\",\"style\":{\"--pseudoBefore--content\":\"'•'\",\"--font-family\":\"Arial\",\"fontSize\":\"min(1.5em, 24px)\",\"lineHeight\":1}}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col space-y-2\",\"children\":[[\"$\",\"p\",null,{\"className\":\"w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [\u0026:is(h2)\u003ediv]:mt-0 [\u0026:is(h3)\u003ediv]:mt-0 [\u0026:is(h4)\u003ediv]:mt-0 mx-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"merge modules: \"}],[\"$\",\"$47\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"ConcatMerge, FiLMMerge\"}]}]]]}]]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"The custom modules are defined in \"}]],\"$L4a\",[[\"$\",\"$47\",\"0\",{\"children\":\", registered in \"}]],\"$L4b\",[[\"$\",\"$47\",\"0\",{\"children\":\".\"}]]]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"The full examples of architecture references are in \"}]],\"$L4c\",[[\"$\",\"$47\",\"0\",{\"children\":\", and full functional examples are in \"}]],\"$L4d\",[[\"$\",\"$47\",\"0\",{\"children\":\". Below we walk through some main examples.\"}]]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"convnet\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"convnet\",\"className\":\"text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group"])</script><script>self.__next_f.push([1,"-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#convnet\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start leading-snug\",\"children\":[\"$\",\"$L38\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"ConvNet\"}]]]}]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L4e\",null,{\"id\":\"d6d295c0af6244b3a6916ec830b2008c\",\"tabs\":[{\"id\":\"arc\",\"title\":\"arc\"},{\"id\":\"model\",\"title\":\"model\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L4f\"}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L50\"}]]}]],\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"page-api-block:ml-0\"]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"mlp\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-"])</script><script>self.__next_f.push([1,"md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"mlp\",\"className\":\"text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#mlp\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start leading-snug\",\"children\":[\"$\",\"$L38\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"MLP\"}]]]}]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-1\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L4e\",null,{\"id\":\"7fa59ab03f25493eb7619387f85dfde4\",\"tabs\":[{\"id\":\"arc-1\",\"title\":\"arc\"},{\"id\":\"model-1\",\"title\":\"model\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L51\"}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\""])</script><script>self.__next_f.push([1,"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L52\"}]]}]],\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"page-api-block:ml-0\"]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"time-series-transformer\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"time-series-transformer\",\"className\":\"text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#time-series-transformer\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start leading-snug\",\"children\":[\"$\",\"$L38\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"Time-Series Transformer\"}]]]}]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-2\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L4e\",null,{\"id\":\"6c8182683c574f6cb71bacb3cc096d5a\",\"tabs\":[{\"id\":\"arc-2\",\"title\":\"arc\"},{\"id\":\"model-2\",\"title\":\"model\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint "])</script><script>self.__next_f.push([1,"grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L53\"}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L54\"}]]}]],\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"page-api-block:ml-0\"]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"dag-hydra\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"dag-hydra\",\"className\":\"text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#dag-hydra\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start leading-snug\",\"children\":[\"$\",\"$L38\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"DAG: Hydra\"}]]]}]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-a"])</script><script>self.__next_f.push([1,"rea-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"Ultimately, we can build a generic DAG network using the modules linked by the fork and merge modules. The example below shows HydraNet - a network with multiple inputs and multiple outputs.\"}]]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-3\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L4e\",null,{\"id\":\"12ca12992eac416cbc11fa0cba07dd30\",\"tabs\":[{\"id\":\"arc-3\",\"title\":\"arc\"},{\"id\":\"model-3\",\"title\":\"model\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L55\"}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L56\"}]]}]],\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"page-api-block:ml-0\"]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring"])</script><script>self.__next_f.push([1,"-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"The DAG module accepts a \"}],[\"$\",\"$47\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"dict\"}]}],[\"$\",\"$47\",\"2\",{\"children\":\" (example below) as input, and the module selects its input by matching its own name in the arc and the \"}],[\"$\",\"$47\",\"3\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"in_name\"}]}],[\"$\",\"$47\",\"4\",{\"children\":\", then carry forward the output together with any unconsumed inputs.\"}]]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"For example, the input \"}],[\"$\",\"$47\",\"1\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"xs\"}]}],[\"$\",\"$47\",\"2\",{\"children\":\" with keys \"}],[\"$\",\"$47\",\"3\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"image, vector\"}]}],[\"$\",\"$47\",\"4\",{\"children\":\" passes through the first \"}],[\"$\",\"$47\",\"5\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"image\"}]}],[\"$\",\"$47\",\"6\",{\"children\":\" module, and the output becomes \"}],[\"$\",\"$47\",\"7\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"{'image': image_module(xs.image), 'vector': xs.vector}\"}]}],[\"$\",\"$47\",\"8\",{\"children\":\". This is then passed through the remainder of the modules in the arc as declared.\"}]]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"optimizer\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max"])</script><script>self.__next_f.push([1,"-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[47px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"h3\",null,{\"id\":\"optimizer\",\"className\":\"text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]\",\"children\":[\"$\",\"a\",null,{\"href\":\"#optimizer\",\"aria-label\":\"Direct link to heading\",\"className\":\"inline-flex h-full items-start leading-snug\",\"children\":[\"$\",\"$L38\",null,{\"icon\":\"hashtag\",\"className\":\"w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"Optimizer\"}]]]}]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md h-[35px] [max-width:calc(48rem-1px)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_12px_12px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"p\",null,{\"className\":\"mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"TorchArc also provides convenience method to construct optimizer in the same config-driven manner.\"}]]]}]}],[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"undefined-4\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":[\"$\",\"$L4e\",null,{\"id\":\"44ad8edf235a49588155322f6741fb5d\",\"tabs\":[{\"id\":\"arc-4\",\"title\":\"arc\"},{\"id\":\"second-tab\",\"title\":\"Second Tab\"}],\"tabsBody\":[[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"c"])</script><script>self.__next_f.push([1,"lassName\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L57\"}]]}],[\"$\",\"div\",null,{\"className\":\"w-full space-y-4\",\"children\":[[\"$\",\"$29\",null,{\"fallback\":[\"$\",\"div\",null,{\"id\":\"$undefined\",\"role\":\"status\",\"aria-busy\":true,\"className\":\"skeleton-paragraph\",\"children\":[\"$\",\"div\",null,{\"className\":\"ring-1 ring-tint-subtle overflow-hidden relative grid rounded-md [height:calc(15rem-1px)] [max-width:calc(48rem-1px)] mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full bg-tint grid grid-area-1-1 overflow-hidden [mask:conic-gradient(from_90deg_at_1px_1px,_#0000_90deg,_#0003_0)_calc(50%+1px)_calc(0%+47px)_/_48px_48px]\",\"children\":[\"$\",\"div\",null,{\"className\":\"aspect-square from-tint-solid to-transparent grid-area-1-1 relative origin-[50%_50%] top-[50%] self-stretch bg-transparent will-change-transform animate-[rotateLoop_2s_linear_infinite] [background-image:conic-gradient(from_-90deg_at_50%_50%,_var(--tw-gradient-stops)_0deg,_var(--tw-gradient-stops)_90deg,_var(--tw-gradient-stops)_280deg)]\"}]}]}]}],\"children\":\"$L58\"}]]}]],\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"page-api-block:ml-0\"]}]}]]}]}],\"$L59\",[\"$\",\"div\",null,{\"className\":\"mx-auto mt-6 page-api-block:ml-0 flex max-w-3xl flex-row flex-wrap items-center gap-4 text-tint contrast-more:text-tint-strong\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mr-auto text-sm\",\"children\":[[[\"$\",\"$47\",\"string-0\",{\"children\":\"Last updated \"}],[\"$\",\"$47\",\"arg-0\",{\"children\":[\"$\",\"$L5a\",null,{\"value\":\"2022-09-27T13:42:06.000Z\"}]}]],\"\"]}],[\"$\",\"$L43\",null,{\"className\":\"xl:hidden\",\"pageId\":\"-MAHkgY0gMRpyzUqnVLP\"}]]}]]}],[\"$\",\"$L5b\",null,{\"pageId\":\"-MAHkgY0gMRpyzUqnVLP\"}]]]}],[\"$\",\"$29\",null,{\"fallback\":null,\"children\":[\"$\",\"$L5c\",null,{\"withSections\":false}]}]]\n"])</script><script>self.__next_f.push([1,"5d:I[26748,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"8581\",\"static/chunks/8581-a982d98f56c384e1.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"8843\",\"static/chunks/8843-00cba0b160454c4d.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"8678\",\"static/chunks/8678-15aefe1165bae785.js\",\"7093\",\"static/chunks/7093-8f66c7b92e65df99.js\",\"813\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js\"],\"ClientCodeBlock\"]\n5e:I[19522,[\"7842\",\"static/chunks/7842-785434c6c9469d80.js\",\"4289\",\"static/chunks/4289-f629daea2759300f.js\",\"8581\",\"static/chunks/8581-a982d98f56c384e1.js\",\"5890\",\"static/chunks/5890-04b4600f719d7465.js\",\"8843\",\"static/chunks/8843-00cba0b160454c4d.js\",\"983\",\"static/chunks/983-b8c447ba525bab23.js\",\"1683\",\"static/chunks/1683-31d06db443871717.js\",\"8678\",\"static/chunks/8678-15aefe1165bae785.js\",\"7093\",\"static/chunks/7093-8f66c7b92e65df99.js\",\"813\",\"static/chunks/app/middleware/(site)/(content)/%5B%5B...pathname%5D%5D/not-found-989d3dd52c55dcb1.js\"],\"ScrollSectionsList\"]\n46:[\"$\",\"header\",null,{\"className\":\"max-w-3xl mx-auto mb-6 space-y-3 page-api-block:ml-0\",\"children\":[[\"$\",\"nav\",null,{\"children\":[\"$\",\"ol\",null,{\"className\":\"flex flex-wrap items-center gap-2\",\"children\":[[\"$\",\"$47\",\"-MAHkwovOXaHxHigqhdW\",{\"children\":[[\"$\",\"li\",\"-MAHkwovOXaHxHigqhdW\",{\"children\":[\"$\",\"$L37\",null,{\"href\":\"/blog/ml\",\"children\":[\"$undefined\",\"ML\"],\"className\":\"decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100 no-underline hover:underline text-xs tracking-wide font-semibold uppercase flex items-cen"])</script><script>self.__next_f.push([1,"ter gap-1.5 contrast-more:underline contrast-more:decoration-current\"}]}],false]}]]}]}],[\"$\",\"h1\",null,{\"className\":\"text-4xl font-bold flex items-center gap-4\",\"children\":[\"$undefined\",\"TorchArc\"]}],[\"$\",\"p\",null,{\"className\":\"text-lg text-tint\",\"children\":\"2020/06/20\"}]]}]\n49:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"bash\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"pip install torcharc\",\"marks\":[]}],\"key\":\"25793f62bec74500b3b8854425455aae\"}],\"key\":\"a9c87f67d6944defaee2621bcd4a12b1\"}],\"key\":\"9184594fab6747c991cacdab562498f7\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"page-api-block:ml-0\"],\"inlines\":[]}]\n4f:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"python\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"import torcharc\",\"marks\":[]}],\"key\":\"a7c396a80b324d83a149ac8f43090ba3\"}],\"key\":\"82b8f5e95bac4d65919258f795116715\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"abe6e3a7334e44659ef8f353888fab36\"}],\"key\":\"1427d467ad42450bac0cee00db36ae99\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"971970f837494d11b46606faf7812ff0\"}],\"key\":\"06ab1d127ab84a91908b61d9c038e169\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"arc = {\",\"marks\":[]}],\"key\":\"17b148ad1129420d80fca668414b1008\"}],\"key\":\"ec47766e01a9469e87351bfa33ff77b6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'Conv2d',\",\"marks\":[]}],\"key\":\"4784e9840018472bb158e725150c8421\"}],\"key\":\"2ac3ee8f46f143f28cdae17c87c0d9eb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'in_shape': [3, 20, 20],\",\"marks\":[]}],\"key\":\"a02b7f86171a416fafcae0bb66350a97\"}],\"key\":\"37a2c09444e8456eae717aa840222774\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'layers': [\",\"marks\":[]}],\"key\":\"3d2c1c038ecd4f35984f6efd372cdf15\"}],\"key\":\"e33c22b5016549558252d1cd527d07f1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" [16, 4, 2, 0, 1],\",\"marks\":[]}],\"key\":\"883c2cc882e84c80bfc8b60f811d1db2\"}],\"key\":\"4da04507cd244fc88794fc6f5e6dcca6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" [16, 4, 1, 0, 1]\",\"marks\":[]}],\"key\":\"a5d5f7dec41d46b992d6db0f00e6c23e\"}],\"key\":\"4d0a892b04b746c583699359946647aa\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" ],\",\"marks\":[]}],\"key\":\"aaf689ee89464a2aaa4ec3d11899bd8a\"}],\"key\":\"aadb6a41516f46629e9acb6019f2bdbb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'batch_norm': True,\",\"marks\":[]}],\"key\":\"1ea254b2f013439ba5da1db13800fe45\"}],\"key\":\"073ed17fbec7470e8a233bee0246c295\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'activation': 'ReLU',\",\"marks\":[]}],\"key\":\"9c71b5bdf94c4f35a4025f6915e3bb74\"}],\"key\":\"4d515997c94647419e337b7a1c4aa0bb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'dropout': 0.2,\",\"marks\":[]}],\"key\":\"ee1b303c7e7d46bea19710743c41c4d8\"}],\"key\":\"e4560fe7bf144f9c8d1a9e3a36659d28\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":"])</script><script>self.__next_f.push([1,"\"leaf\",\"text\":\" 'init': 'kaiming_uniform_',\",\"marks\":[]}],\"key\":\"b9ba79bc3cfe4792ae288a36e6fce106\"}],\"key\":\"4a826cf6d3c24a55b39de619037295ed\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"f4d6524bd0b94fb4966cbb405bd80f7e\"}],\"key\":\"be9f15d7aea44662a0ef629f27be16f5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"model = torcharc.build(arc)\",\"marks\":[]}],\"key\":\"04f2157700564247acdbc62fe411b7a4\"}],\"key\":\"8c7eed6fc3db48cb9a17a23164d90fd2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"b1852cf42ae9411d99271d667df708df\"}],\"key\":\"b77a8c3d2dc34896af327f596722e251\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"batch_size = 16\",\"marks\":[]}],\"key\":\"2e6e94a17ae14f5686cd0488e9665417\"}],\"key\":\"0b89c261bf1b4a19a0afa43e5115a333\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"x = torch.rand([batch_size, *arc['in_shape']])\",\"marks\":[]}],\"key\":\"5f9f3d98c14d4897bb6a3a43f6667f4d\"}],\"key\":\"848ed778329342759b72e972199c239d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"y = model(x)\",\"marks\":[]}],\"key\":\"46e2832ae9bb4708835de50a051713d1\"}],\"key\":\"c817a23ea6f24a928929776cb6f8cd0e\"}],\"key\":\"2dbb1c1908d7467897ffde19e598ac39\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n50:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Sequential(\",\"marks\":[]}],\"key\":\"abe7d47c7178441cb4bdc50a31df3c9b\"}],\"key\":\"9966d3efe4b543a48a725409f89f14fe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (0): Conv2d(3, 16, kernel_size=(4, 4), stride=(2, 2))\",\"marks\":[]}],\"key\":\"e594a75a9f4348ab8b4987e2298d4475\"}],\"key\":\"f4169b02d43b44de9194c7b4e3ff21b3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\",\"marks\":[]}],\"key\":\"fbc9e0decfe84820aab2c5e6b641ebf3\"}],\"key\":\"cb88512bcc6247f2bf14f9b53b66b37f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (2): ReLU()\",\"marks\":[]}],\"key\":\"e20aa0a0ccba47cf857c4d88ff204dc0\"}],\"key\":\"ee552b8a20594017b869287763772925\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (3): Dropout2d(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"9cba480eb7ab4e9cba5d2ce7330507a1\"}],\"key\":\"46a2fb20e52043078d7a896ff4c6b606\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (4): Conv2d(16, 16, kernel_size=(4, 4), stride=(1, 1))\",\"marks\":[]}],\"key\":\"385c88f856d54626b107d21cf16ba905\"}],\"key\":\"ade93102ec0d44b99bf6b8dad320bdc1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (5): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\",\"marks\":[]}],\"key\":\"4e9b4eaedc0c4d16ac5ab83877d99543\"}],\"key\":\"231891a2e81b44b9a4ddd737d142e4af\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (6): ReLU()\",\"marks\":[]}],\"key\":\"e59356e68fce4cd0adb4d07e5198b86c\"}],\"key\":\"922eeacbdb7046daa238f4f846324b68\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (7): Dropou"])</script><script>self.__next_f.push([1,"t2d(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"e40691e9ab0d4ab49bd3b142db0daca1\"}],\"key\":\"bec9cc981bcb4dcc826a0d7a07330962\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\")\",\"marks\":[]}],\"key\":\"4598185fcbfa4deead1a64862e5bb694\"}],\"key\":\"6ffce8c979464f3d8d15a3ebf0eedf6e\"}],\"key\":\"5303f27f493b48ec93aae991bfd01e01\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n51:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"python\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"arc = {\",\"marks\":[]}],\"key\":\"5da12a0baf5448d487a4722fbdffe0d2\"}],\"key\":\"555986ec42f7437694767301d9258994\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'Linear',\",\"marks\":[]}],\"key\":\"179c648a066d400ebe51cc97d5de9992\"}],\"key\":\"ba382acf4c18482c8f09aa2ba5ca2524\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'in_features': 8,\",\"marks\":[]}],\"key\":\"81ad91c6d9d543289c42c5956a4ec1ff\"}],\"key\":\"f1c9f3dc5ffd4bec88c76fe43780155f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'layers': [64, 32],\",\"marks\":[]}],\"key\":\"f31c6d6bc47c4b1eb3e074a938ca0207\"}],\"key\":\"f8c2d725e47341e7b3ad034b12e1b813\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'batch_norm': True,\",\"marks\":[]}],\"key\":\"15db5484f3234ab5813af31a4b1ca378\"}],\"key\":\"1ff8023b52f64759a88a92212cece0d4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'activation': 'ReLU',\",\"marks\":[]}],\"key\":\"ef4e975bf47f46be82870c3197392a14\"}],\"key\":\"3a1c6da21b824dee891331a4b5a67b04\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'dropout': 0.2,\",\"marks\":[]}],\"key\":\"ffb56c3d9c4d42cdaae0805fcd0c6b32\"}],\"key\":\"0a4a0d4c603944b0ad40876f3d991af9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'init': {\",\"marks\":[]}],\"key\":\"44fb831dcaf341eabf11205d327740b1\"}],\"key\":\"a4d03078ec084dd995441d58ee8b47a1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'normal_',\",\"marks\":[]}],\"key\":\"23253ada54c04b2fbeeb57996fa15869\"}],\"key\":\"77d58d4a8b304e10be58ed50c96d2535\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'std': 0.01,\",\"marks\":[]}],\"key\":\"1eee43f748364e1f87490164468cb499\"}],\"key\":\"27c048f7aa804226ad1c31e6042d0b49\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" },\",\"marks\":[]}],\"key\":\"a80678b1ce4c44ec854b36a68dfdf859\"}],\"key\":\"2dd7ef8d4e0f47e4a3cce0619cc93b5e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"b2533e439b484bfbaf1477255729d64a\"}],\"key\":\"c2d827ab61a4411b8f92461c3a01f995\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"model = torcharc.build(arc)\",\"marks\":[]}],\"key\":\"a455a9e516c14a53b8c791b75aaff940\"}],\"key\":\"23749aa4941241e6ba141d524b53e67e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"e38c5337d7964fc295007ae964213329\"}],\"key\":\"2440d6c926cf40409d5b2b029682f404\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"batch_size = 16\",\"ma"])</script><script>self.__next_f.push([1,"rks\":[]}],\"key\":\"03220791cc114dbb8c4bf129da669563\"}],\"key\":\"e473bfa559c5429f8c3396946af77ffc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"x = torch.rand([batch_size, arc['in_features']])\",\"marks\":[]}],\"key\":\"b4d7abcfc64a43d78b57695a30064dc3\"}],\"key\":\"538f134dbd9846f597a80e7228f09df1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"y = model(x)\",\"marks\":[]}],\"key\":\"754652e348794812829707dbc140d9a5\"}],\"key\":\"ea4accb59240429d8a59e5c07793092b\"}],\"key\":\"3224a5aae9c64a29a700391544c71aaa\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n52:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Sequential(\",\"marks\":[]}],\"key\":\"f03a852e6884480a9fd03e11ce88023d\"}],\"key\":\"efb5551571354621a616d2d2d681e612\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (0): Linear(in_features=8, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"2a54899296ac46f8a18e9dada73179b4\"}],\"key\":\"1ac391e4e1894a93b612cc020f32ddd0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\",\"marks\":[]}],\"key\":\"71683b16f8b64312bef3e278b114643b\"}],\"key\":\"b97ca4fdedaa4a008d17776d15ddeed7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (2): ReLU()\",\"marks\":[]}],\"key\":\"95c8bb57dfb44bcd9bc501e892e5f647\"}],\"key\":\"3967d8a50b4b4461a5e7e5825ce970d4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (3): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"6d4f9552c0974ae29d23385691e9c921\"}],\"key\":\"8f50a11c1be04a16804a521c51cfa694\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (4): Linear(in_features=64, out_features=32, bias=True)\",\"marks\":[]}],\"key\":\"1988f5d0da4a4912a86c8c894c1025b7\"}],\"key\":\"fd3b91ce5a414d61a369f3b7d83097dc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (5): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\",\"marks\":[]}],\"key\":\"111c19484f384abab6abd8d43254e19f\"}],\"key\":\"d4a5b46017c54f35ac966a7d17284ae2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (6): ReLU()\",\"marks\":[]}],\"key\":\"dbaa39ed6fb04bb394bd7b807a5d17bf\"}],\"key\":\"3632b2a7ff994f2e9313462518811d2e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (7): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"bda9b82a96214391b51780aa52cebf66\"}],\"key\":\"5bc3947844674aa8997b26e749f691fc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\")\",\"marks\":[]}],\"key\":\"78242b2d2f87497cabf405c4764b174d\"}],\"key\":\"2e4c1b0d015444c495b9b58e34de0dbf\"}],\"key\":\"6033d17a070042cc81fb32bc495a1915\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n53:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"python\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"arc = {\",\"marks\":[]}],\"key\":\"750457d0021441438e08552c84d964c8\"}],\"key\":\"5bb2fcd93df34008a30da68cb7e0210c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'TSTransformer',\",\"mar"])</script><script>self.__next_f.push([1,"ks\":[]}],\"key\":\"a68d10a5866f4a8caf3ee0e4ed4fab70\"}],\"key\":\"04479ca8792f49cca2bb449691edf568\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'd_model': 64,\",\"marks\":[]}],\"key\":\"5b543e5937c6440b9de301b7f86c0e37\"}],\"key\":\"b63f27c2b4704fd096838efdc89904f2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'nhead': 8,\",\"marks\":[]}],\"key\":\"ba35b84d0fb246939598655513760d30\"}],\"key\":\"024380f6918f4f50a45234e36d1d3482\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'num_encoder_layers': 4,\",\"marks\":[]}],\"key\":\"31816dc115de4025b2cb7b64837bbef3\"}],\"key\":\"98eec284ab3b439ba8ed69cecfbbb49f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'num_decoder_layers': 4,\",\"marks\":[]}],\"key\":\"82d74905f9404ed1a76394a8dc3e716a\"}],\"key\":\"57a8fdebfc4644758edba513400a924e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'dropout': 0.2,\",\"marks\":[]}],\"key\":\"2320dc0b8ebe41268a7e58ce0231e270\"}],\"key\":\"6a65db5960694bd68516997e695dce6e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'dim_feedforward': 2048,\",\"marks\":[]}],\"key\":\"1caa36a3415847049160d0b29bc9118e\"}],\"key\":\"a507b5edd8be45b68fcf987b8eb077eb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'activation': 'relu',\",\"marks\":[]}],\"key\":\"563069cb77b8415b9a9d2ddd0a2d537b\"}],\"key\":\"67b377cb70574035b7816010bcb7b087\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'in_embedding': 'Linear',\",\"marks\":[]}],\"key\":\"89da687289c04523ab1c543e517f95ea\"}],\"key\":\"88539773e16e4ef0b5d4606ff1589fb4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'pe': 'sinusoid',\",\"marks\":[]}],\"key\":\"b69113215a9643d9894e3391f7a4c339\"}],\"key\":\"31f9df7a24824568ac02c2d956679b2b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'attention_size': None,\",\"marks\":[]}],\"key\":\"af9da3f97ac64af98955091eae860baa\"}],\"key\":\"6da0116f5a334fc38183743599515304\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'in_channels': 1,\",\"marks\":[]}],\"key\":\"a8575c73c05b49b18c2606096eb99058\"}],\"key\":\"1e2891ffc2a944efa8afcc938050f909\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'out_channels': 1,\",\"marks\":[]}],\"key\":\"4af304d3268643d3a8f3f88c8bcca5d8\"}],\"key\":\"3f4a289f4da3408baff9c5fafaa04c50\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'q': 8,\",\"marks\":[]}],\"key\":\"6521b6ecb61543c39f1a10d962441821\"}],\"key\":\"c0f3361a98244a7984fcf55850da62e8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'v': 8,\",\"marks\":[]}],\"key\":\"565b3dc74a1448eeab2929d14e08f4a9\"}],\"key\":\"9392f4b5aa684a8784ea7c4933eabaae\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'chunk_mode': None,\",\"marks\":[]}],\"key\":\"d75efcf306bf496584c4886dd0f622fe\"}],\"key\":\"2ae5dbb9d8a24c24b5e83441f53e7547\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"14bb614643614cd2a32872bfc577d44d\"}],\"key\":\"1d7c913a7e5c4e4fa22e6c5e10d2a5bb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\""])</script><script>self.__next_f.push([1,":\"leaf\",\"text\":\"model = torcharc.build(arc)\",\"marks\":[]}],\"key\":\"e310a8c5117747d693da9ab4997977f8\"}],\"key\":\"09e63f3c1e104fdd9a1029b3183973fd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"a71dd5744aa2400fa115efa549833413\"}],\"key\":\"28a5b65a496d4444a8d2bb8b74d88013\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"seq_len = 32\",\"marks\":[]}],\"key\":\"0b573501fc1f48ada23d118db2e6bcfd\"}],\"key\":\"09b5d3f7bf604b4d9babb3a6c474a68f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"x = torch.rand([seq_len, arc['in_channels']])\",\"marks\":[]}],\"key\":\"296db151e98745349165b8b17390feb6\"}],\"key\":\"4e859f73b6194cc4a036c06bdb4dd482\"}],\"key\":\"1df16460c6d94cd7be7906780b45fb95\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n54:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"TSTransformer(\",\"marks\":[]}],\"key\":\"70ce1a9f008240f59c2366f5ec41a7b4\"}],\"key\":\"bbc32d068a7046e2a06374d623baf115\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (in_embedding): Linear(in_features=1, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"60d0a2a94d484da198c58a3489ec72a9\"}],\"key\":\"ed888a2c1b94484f9fefe3a1dfa8dc8b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (pe): SinusoidPE(\",\"marks\":[]}],\"key\":\"a2e8c88279544de7956a87f17b750f3a\"}],\"key\":\"088dbd5ea91f49af8e41c3b47391a75f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (dropout): Dropout(p=0.1, inplace=False)\",\"marks\":[]}],\"key\":\"1d3384261a944e6b80d792eb38cba10c\"}],\"key\":\"980252ad50ce45e884d6f60365a8b08e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"5061b2dfd87e4498a5b38164160d5beb\"}],\"key\":\"dc90f7da9a724d1bb9acb9100d10437f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (encoders): Sequential(\",\"marks\":[]}],\"key\":\"f4a907554b164c96ad23e22b8220a23b\"}],\"key\":\"d47781c7eb584d85bc63301aecfe4949\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (0): Encoder(\",\"marks\":[]}],\"key\":\"063bb5e9311b44dd845b8b660f5f5f5b\"}],\"key\":\"5a1f4c904a0247669dccc6779a8833ff\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_selfAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"90bfe0ce52594b808a8e13a7b1fa323a\"}],\"key\":\"4ee21ccb68284a0eaa5b960b392b83df\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"e3fc0347dfb24f9d96c66c843b3cbd2d\"}],\"key\":\"f6968c51532344a69b75874444e566c4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"5570efee5c3d4e4d98bf2d4500fe0445\"}],\"key\":\"38a0e10e8dd84d26a07693424f22562d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"059d090c9a7d44a2a84238120bfffb26\"}],\"key\":\"f4c8b7a57d5b4e0b85bb8841db5fa5d1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"le"])</script><script>self.__next_f.push([1,"af\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"1bbd20c342a942a6800d0a5d5611c048\"}],\"key\":\"d024ba6a6d0941bd8f246cee377afa2f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"18eda3e643454ee097ecae6c58caa54b\"}],\"key\":\"0e3c67142ab9492f85f30a8c45b7ec30\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_feedForward): PositionwiseFeedForward(\",\"marks\":[]}],\"key\":\"8acb9afbcdb4417fa16178e951710d0b\"}],\"key\":\"f8edcae6ea944c4282aaa68fe4ecb793\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear1): Linear(in_features=64, out_features=2048, bias=True)\",\"marks\":[]}],\"key\":\"94be1a25396043aab22d973b3688d311\"}],\"key\":\"d95d0123c50a4e30858633fba53d84e3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear2): Linear(in_features=2048, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"bf480c8746764b3b9e8bd9e9271f2256\"}],\"key\":\"51ca93a32d954497805cf6eec01df0bd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"e68bf96f16734d60aa142b1f2f605b18\"}],\"key\":\"beec6001452e408a82482ecebccaf3c4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"2ad550fda5794fed9d802675eac9ed05\"}],\"key\":\"20762e438ca8495bb04fa180f694c53a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"f8aa36153498444095e337efa1b8e924\"}],\"key\":\"92fd44dce56e46208781157e317d173b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_dropout): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"f37a1719584a4b6a81e59f959ddca737\"}],\"key\":\"7f8ee42b21f7429785a677e04293c2b5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"e4e058cc3b554b378e9d58e725dfb950\"}],\"key\":\"189ae9b875e14adaad43bfa487caa857\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (1): Encoder(\",\"marks\":[]}],\"key\":\"7722bf086854400aa177a4a0c9207777\"}],\"key\":\"628c0fa1f7df4593a19bad156bbba98a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_selfAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"fb997c6dd32540bb92d1dd0937dc41c2\"}],\"key\":\"321d1def7722491a86b8df0c009cc67f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"a025a815bce2440eb5381d8993fcee3f\"}],\"key\":\"6f5dc741211748eb92d719bca292df13\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"1fe964ea89f6495eb3095ac64f4e00f9\"}],\"key\":\"7b32cf7b92504b02b7ab1938d6534a28\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"b6f05d37510d47cf8556f08c5c5bb393\"}],\"key\":\"56f94b1a091c4f0e8798a68689c3d4ab\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o"])</script><script>self.__next_f.push([1,"): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"0a1938d38e024e108f227e5eab83d282\"}],\"key\":\"2e40d7384cd3486bbc2eb73955083aa3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"9238f3bf5e474e16baaee72fdd634671\"}],\"key\":\"abc6f08d7a9e427f8ce733e677cc93a6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_feedForward): PositionwiseFeedForward(\",\"marks\":[]}],\"key\":\"dd5f26d909254406a1177b848f6bb3f4\"}],\"key\":\"9dc32a8eac95418cb5641fa2ea3ae8d0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear1): Linear(in_features=64, out_features=2048, bias=True)\",\"marks\":[]}],\"key\":\"df7e52bd3f8c46b19667472d60a3717d\"}],\"key\":\"b28b6f1aea8f4923986ae985dfdc8c30\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear2): Linear(in_features=2048, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"8a8302c6a0f24fbe8b5517479f0156aa\"}],\"key\":\"3620878aca434b0fa407b4b727de5030\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"0e14aabf9b8443aaaba23fc8fa37c16f\"}],\"key\":\"aa9632ddb2f54039a7ab63645d67b7eb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"e2fe9a274cc841f583e5e1afbeaedbc8\"}],\"key\":\"ec527ac8050c4c8eb1c3bf4eb8f182a2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"54ab68b4ab8f4d6ba41b62a38940c20b\"}],\"key\":\"bd458d3ce4df4089b5c43241b8863a11\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_dropout): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"0f2f697503764890b7706eedef4f3b3d\"}],\"key\":\"ed88008a7fcd4ef6afe23c1cd963a3a9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"02c80e14bb4e44c2a41e681a6f06d92c\"}],\"key\":\"73169a51065248d2837d512c93eb4f8b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (2): Encoder(\",\"marks\":[]}],\"key\":\"a504ba9ad9b642d1bd9e4237b493f36a\"}],\"key\":\"fc8de47269854892bc82401fd8345fa6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_selfAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"ad95acff43fe407db311ae3d850864a0\"}],\"key\":\"e2dbb508ca0c468abd2293637ad5ce4d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"c0eb6c0701c04ee88d1c8ab0213ab423\"}],\"key\":\"ad37e4289ddd424eae7f8f1c2dc2c15e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"d96e1263989b462e8f179f7bcafb0e34\"}],\"key\":\"0be2634ddac24471912ef7e40e262c37\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"b99149ee64524dae94abe0c986657483\"}],\"key\":\"2dc305dd55a940c5b31d61d1d1a55be0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64,"])</script><script>self.__next_f.push([1," out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"15a49aa2438f4d2ca5f15ffd6e2fee19\"}],\"key\":\"16545816b14c4f1bbcb6976c3247065c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"d27da7559bb6418ea3e6879795a400c6\"}],\"key\":\"7d852eaa1f4c489fb2d18c5f01efee5c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_feedForward): PositionwiseFeedForward(\",\"marks\":[]}],\"key\":\"29b5e3442cc7465a96512fcfc5e51e82\"}],\"key\":\"3ad89af1ff0b4957ac4835a1f43bf5e8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear1): Linear(in_features=64, out_features=2048, bias=True)\",\"marks\":[]}],\"key\":\"d81be559f31241eaa23d50a4cfd8cbe6\"}],\"key\":\"42cf5da356b54c089b6ebdf6f38e6091\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear2): Linear(in_features=2048, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"765457b2a25c4c1eb56ded7a0c1115f2\"}],\"key\":\"e1d822c1062e4ccbb39793b0045e7e33\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"c532ab3d98a648ba890b416082688366\"}],\"key\":\"1291256baab7455390ad11d5c3fe0d50\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"f8a7548438b7453892b47bc213b91cf1\"}],\"key\":\"b628ed3f65b14a1e807cf8a5c644c6b1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"bf5c09653cc445ffb0ad303faf328b8d\"}],\"key\":\"65dbf3d12b1e4e29b5ca9ec2f3698a9d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_dropout): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"4abc0f08ac274248b978dc7b2adbe474\"}],\"key\":\"fa8edd569f2e4afa9263e26148620cb9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"43d46e24891e45d6b0e32b38e5672970\"}],\"key\":\"51bbb669bb6d4b4198c0b0646e8407d1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (3): Encoder(\",\"marks\":[]}],\"key\":\"1d721f75d4e94d3682d92ab99650f139\"}],\"key\":\"285e8f2ba30f4882ad35c49a77ace643\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_selfAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"fe6711da63444a9dbe040c3add760c39\"}],\"key\":\"ae39f585fb2543eb80770f54dabc5a1d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"2089d095001e45b3a58c9704560e8dc1\"}],\"key\":\"92773913295546eb9890704a585ba18f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"e87aa70405cb41b7a32cb35bcb0156de\"}],\"key\":\"126b69e4f13f45669ec027fe9343f047\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"3fd5f1c744204842848454ee7f2a3fd0\"}],\"key\":\"f9e76e55d79a4e2dbe28fb87d54a820a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=Tr"])</script><script>self.__next_f.push([1,"ue)\",\"marks\":[]}],\"key\":\"611914854b3d4632ac6a141b751a35e6\"}],\"key\":\"7eba49e15fa643d5919693ccfe3be995\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"b95fee41991e4f81b82610d07da9b011\"}],\"key\":\"cdd1b322040d4e409c2cb38a92644432\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_feedForward): PositionwiseFeedForward(\",\"marks\":[]}],\"key\":\"a39c790b1c6447468acfd6f4465c3f8b\"}],\"key\":\"d63c43e4a54349d3867c435ef2868396\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear1): Linear(in_features=64, out_features=2048, bias=True)\",\"marks\":[]}],\"key\":\"18026bc488534b0b85fa5f60285898a3\"}],\"key\":\"1075e697b5ac457c953e0b1fa92a79dc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear2): Linear(in_features=2048, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"b4ec7c31ae1a4451b4be7adfdd94f17b\"}],\"key\":\"9e188fb349af44219a723b471aa445d4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"cbe1b37c31844237ae69fe18fa687534\"}],\"key\":\"d73fb11defb34ea1b41a29b72c1b9830\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"d38a04aac9c3424695653ef8a1c78fa5\"}],\"key\":\"a7065886ff9e4f1faaacc0dd40df2b67\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"0c42ebcdf02747559df9d3d7ff89dc09\"}],\"key\":\"7f606a659672419d8f7c0d36b63700f3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_dropout): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"3e3f575b66844eaaba74353d5589afb8\"}],\"key\":\"39cc7500f82649deb63581856f0d0f7f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"2c25f919aca041e992c38ae319e9beec\"}],\"key\":\"7c8bc6fb353b482a94b02097a330bf78\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"6f084ffff9724dacba9c6c4e6c08470f\"}],\"key\":\"bbd2f07a3c574fb587547e648e90725f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (decoders): ModuleList(\",\"marks\":[]}],\"key\":\"5f9e374ead3040f0934a0108694a4870\"}],\"key\":\"0501999402c14e46beb8c6d20c5a847c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (0): Decoder(\",\"marks\":[]}],\"key\":\"9b2f7af64a22477ba2e61e3824a3bf51\"}],\"key\":\"510e0168a1df42ca83ba4046a91cbd96\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_selfAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"b2c3adf22e33444592204728d0e22d1e\"}],\"key\":\"d36d4f0f9ce54f0689c617370cbfe834\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"61f9a98ad47b47d6872e76f606aeb450\"}],\"key\":\"69e1d36920bc4627a7e78ae56f3cc95f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"a6ed22a80c254051a948250fdaabb52b\"}],\"key\":\"84ff7d483c664e188b59691ce735557e\"},{\"object\":\"block\",\"type\":\""])</script><script>self.__next_f.push([1,"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"c3de211b0b5143328dacc5d1a7a9d4e0\"}],\"key\":\"1b2cf4df059a463cae4e1634080c5582\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"35d8fa2e4a79423aa224f6a0f99693ef\"}],\"key\":\"c6c99071933b4e75be51806bf6f3fb2f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"748fd9d9024e449096380c2714280b31\"}],\"key\":\"1860366d3e5b4823927277ff3ba2b642\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_encoderDecoderAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"d65ed15cd42a43be9d319afe8a884299\"}],\"key\":\"9c4b239a57184639a55c756d5aec5ca2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"846faeb6570e445c80b7a161c6b411c3\"}],\"key\":\"183d42ca4db141b29fafe8dddf1192ef\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"682071015af3410e9aecc9d5d7334583\"}],\"key\":\"d45b50259a23482b9e1a342551df2599\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"3bf57d6ec6e0465fa118c8811692aa20\"}],\"key\":\"aa9245e7d5f142ffb490d06a2cd10888\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"423cb8cd55834b8e9443c0d971e55e62\"}],\"key\":\"39afc2cb83984af09d5293f8ec2b900f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"025b8d585f7c407285b7a8d71a9074d7\"}],\"key\":\"d62ccebfdb90448e8087e732ee076b65\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_feedForward): PositionwiseFeedForward(\",\"marks\":[]}],\"key\":\"bcc96f224a774f2eac3320818c1c8fee\"}],\"key\":\"30460d4dd0a9401a9e6fa4bff66fe754\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear1): Linear(in_features=64, out_features=2048, bias=True)\",\"marks\":[]}],\"key\":\"87b202ec6e994f019280e246e5de838b\"}],\"key\":\"69a34050446749cba92c8f0dbbc9ef26\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear2): Linear(in_features=2048, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"c2a95ac35820433e9435a592e521edd7\"}],\"key\":\"6c031b497af245a2a066d22e8ab23ac1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"4a28d96d79a84c70aedd4cc7b9e551bc\"}],\"key\":\"46585271536a48078400451066a3f4df\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"83a4ea21d12d42cc9844dffb490bce01\"}],\"key\":\"8ea4e58605564c1b8132172afa0150ce\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"eb2c9acc3bdb4adcb3243aadf8ac2379\"}],\"key\":\"0388df"])</script><script>self.__next_f.push([1,"29a31945b08e5ae286ad0344ec\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm3): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"79e91c80e0cc49809bf211a6c8c3ebc0\"}],\"key\":\"29cb2d2152c0490798255833cf964a75\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_dropout): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"d613376a00444e5689a78fee1461deff\"}],\"key\":\"7f969373de854a089e709affac7bf6cf\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"2d30cb69d5bd403587033a67c94613c1\"}],\"key\":\"1fe83ff51b72406eb06be9bf01e520f3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (1): Decoder(\",\"marks\":[]}],\"key\":\"c963dee68fdb45e09b8577a822ca8324\"}],\"key\":\"45428a314fad403890e2d81d91f1fd76\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_selfAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"100e452181954da8a6bc3e97640254d8\"}],\"key\":\"a9f803b681c042f4b8b16240a40f7413\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"db2b2ae8951741b4bbe63f74b9a7bedd\"}],\"key\":\"0518e69e84ce4fbb9b9493a204e48ad6\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"3024837a4a3b413ba2a0946dad9c51aa\"}],\"key\":\"8262346a7c344abca146e9fe0184d1e3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"99c93143a41b474d8451aef16f9cecaf\"}],\"key\":\"bede45e79a3a4071a09efe4021e33934\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"b303bc49a57a4bb98a8c49ccb63e637e\"}],\"key\":\"972bb1b7b6cc422483f2f7910f715d15\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"3ca43c73321549b6aa01d2c7ea11904f\"}],\"key\":\"39e5e8c687f641a19a4d3ee5832df166\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_encoderDecoderAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"384a406ad82d457c9b1675899b19758c\"}],\"key\":\"1bd662c2b847450db2bcca5596bbf821\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"55fd7b6c5c9f4d4b8375db4477deac4b\"}],\"key\":\"a8aeaa98d1824799a458d611613c53c4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"9b82af466ad14bb986181ff78b4415fe\"}],\"key\":\"89498a03fee542fea384389dce968dd3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"f65bf5037de64e8d9d06ae3454dd2793\"}],\"key\":\"c44322c288dc422ea7bdac9df2cd58c5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"38d1019eb5814599917a5ca713a"])</script><script>self.__next_f.push([1,"968c9\"}],\"key\":\"fe9e6392f567407ea2249fdd3435da0f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"871b222bb73d4e6794276f87a6b93307\"}],\"key\":\"5ff7bea4489a4817b51c244f2f1a128c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_feedForward): PositionwiseFeedForward(\",\"marks\":[]}],\"key\":\"a9cfb4a488db47549f5f318dbaae77cd\"}],\"key\":\"4080d8e2c9f74387b8d68cdfe3117c10\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear1): Linear(in_features=64, out_features=2048, bias=True)\",\"marks\":[]}],\"key\":\"7dd42f29391e4731a186b9664ec65c0c\"}],\"key\":\"c6aad3e2687e496089fce3c4aaae5269\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear2): Linear(in_features=2048, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"a6131b8ecf454952862e76c8212f5266\"}],\"key\":\"a6989c608e524fcab86856d0aea53b65\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"34e6298e0a9c49da8a8d5f143508e530\"}],\"key\":\"c820b40c5d66461c9305e743cb663b02\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"245eb312a29442ba86b0fb68d775a191\"}],\"key\":\"8c1d65c74d61481f9661c280882df725\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"6eb34b45ac7944adbe5e3857383eb099\"}],\"key\":\"4db1526ac349427a9de7fafd4b4e8e21\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm3): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"e407e0f266534141806cd0c91aebb696\"}],\"key\":\"d5a7138f9d76487690604873a4ba8659\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_dropout): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"b1a4944ef6334b8c89ee55e9614dae45\"}],\"key\":\"d2e62b339cd84dc4ba1fa0c32e2533fb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"987cfb6665274034ae691e184e6769ce\"}],\"key\":\"006ea221bd9b47b3be83e559dc68b34f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (2): Decoder(\",\"marks\":[]}],\"key\":\"fae04c029c8a4aecbad80b4981c77a22\"}],\"key\":\"a70c4464419042cd9348d7b0795b4575\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_selfAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"a01942f4bad549c8b1552ecb4f7c7dbb\"}],\"key\":\"f0eae7ce3bb54ea7ad19ac0608445447\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"8a1d2418f94147578f9c1be701575bb9\"}],\"key\":\"9df365a54dd949b8ad32329ea77ea2ca\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"4b9ccf8177cc49709056b8ac9e53dbb6\"}],\"key\":\"486de4032818491cbc65f6afde9e2b0b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"ff8db02743954bbbb838952496ad9afc\"}],\"key\":\"17"])</script><script>self.__next_f.push([1,"ae365827484d98aafce1a99d23e408\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"dba29e80aaea4a4997535f2544d7fc37\"}],\"key\":\"4053c7fa14ef44ffbc15e7dc8a3d8e4c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"225b7ed111f94a5b973d52d81c175429\"}],\"key\":\"4a1a64cfcfd24b37923922732211959c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_encoderDecoderAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"da06727671cf42fbb5bdf7de86a31980\"}],\"key\":\"17063196711b4082ae03ab660ddb7631\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"33a29f446d7747e790ada14636a68feb\"}],\"key\":\"cfcbb9f28a3d45348b43436a4301ec18\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"a6f0ccb790664d30a5308ab57e4ad5a4\"}],\"key\":\"a48527827a8e4f35af3a115e9e10f470\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"b2a8174993a44636832b475c5ced98d7\"}],\"key\":\"0f1c270d8afd4db9a93d8e3507325ca0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"c94ce1f24d924e5d93e7683f2fb8a593\"}],\"key\":\"f6710e121a1b42f0b199a7f62ba3b509\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"2c47e385474a4aa1816e300a4b7793ee\"}],\"key\":\"da9b210f8fc94106bb476981bf65db7b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_feedForward): PositionwiseFeedForward(\",\"marks\":[]}],\"key\":\"3ebaf03a483a4602bb8241bddc744d77\"}],\"key\":\"fcbb80fbc9f14363b948712dedbf607c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear1): Linear(in_features=64, out_features=2048, bias=True)\",\"marks\":[]}],\"key\":\"244ed8c3152a4b7ba12c5c0e065159aa\"}],\"key\":\"d13d29d20603445982e2ba830bbc8ead\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear2): Linear(in_features=2048, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"4d4fdc69b80e49bc8b7b86fe5072a261\"}],\"key\":\"f2ba8e596b124392b5be3c8009308080\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"98742a97c66344bdae52ea5fdc32303f\"}],\"key\":\"e3d9e3ae79b947259f73b90a32d289d8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"623c23800b5d4020ba15cf02318e0d10\"}],\"key\":\"705f166d1b314782acb051db07d54dc9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"5b86cf14c24b480b9071010e7a64a6c7\"}],\"key\":\"0752fd601bed4004accf4f57afc2dfcc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm3): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"ma"])</script><script>self.__next_f.push([1,"rks\":[]}],\"key\":\"2729d10edb9f4439b1a96c7f40a20b82\"}],\"key\":\"a24b970670d3492b89f9637c5b898d4d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_dropout): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"d750b46b0f494b4bbfd0de3fb4d2c336\"}],\"key\":\"7c989067176e4bcb96dc873de4e350b5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"05da06b306164011afe491e2367496dd\"}],\"key\":\"70b922b63d1c466e8f60ce09f14296a9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (3): Decoder(\",\"marks\":[]}],\"key\":\"c0d8b5c298874c9eb26c915bef697e01\"}],\"key\":\"f72e376584af414aaff0794fde3cac5a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_selfAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"bce10bcf74a344ffaebf92c7644aa348\"}],\"key\":\"9a9ab54cb735455492a8805693232d08\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"c891bb8ae00b462bb0e90126584d1231\"}],\"key\":\"d43b8c11b7c94189bbb5857419f106f0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"62fe5caf2a784b0c8956a371192fa0d8\"}],\"key\":\"b5237af002464a32bcf5564ad3935e64\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"b19003fef69a419ba4b68ea098dcadf2\"}],\"key\":\"f30c60bbd78c40dca68268e5b493bad1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"d078427f258d4a33b92ec5534694e2e8\"}],\"key\":\"4724bda163d343a485890218583084f1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"613c3299c8e84fb9a5dcf02dc05c7ee1\"}],\"key\":\"15a25358964c4eb5a27300d135bbf512\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_encoderDecoderAttention): MultiHeadAttention(\",\"marks\":[]}],\"key\":\"575ad6063f3a40ed91af299bce761d99\"}],\"key\":\"b49fda20a7404219997ca471a28ebcb5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_q): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"5bf126c35372423d93a6227576710b26\"}],\"key\":\"be33a27ef4db4d69acb8066a8079d0ab\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_k): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"1ba457112fcf4a24a5c55cfffa754b02\"}],\"key\":\"50ee979e65f9423683aa25f689332c7d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_v): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"748cd36eb8914280ab6fbc70d7e2439f\"}],\"key\":\"9b9e7ff5a3c54889963dc6483ad83720\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_W_o): Linear(in_features=64, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"8fc5e26f4adc42a1a2cf8a7e70d4950f\"}],\"key\":\"f4e0880b1ab34b6d9a554751aee26571\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"dfe65e327ab840d4a6b77611855"])</script><script>self.__next_f.push([1,"d4e68\"}],\"key\":\"3b31fd00b5da4a148dcac4bcb2d4d33d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_feedForward): PositionwiseFeedForward(\",\"marks\":[]}],\"key\":\"94cd5f040e0f47ee9e40c8a7f3c79d11\"}],\"key\":\"3e30d583715a41698b7509305e2e561c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear1): Linear(in_features=64, out_features=2048, bias=True)\",\"marks\":[]}],\"key\":\"3a40724d1f0044b49d81e9c772194164\"}],\"key\":\"ec4c8abf6c264e88a2e33004e7293259\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_linear2): Linear(in_features=2048, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"5c75d129a10344378ffa97355acc96d1\"}],\"key\":\"c1cbea43116945b79a992d86ca6e26aa\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"851eab82da4744bda47153ac2c5e04fa\"}],\"key\":\"fe82f1a1e6534c2bb44f48266c9bf682\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"e0976702453f4311b2825d98d920c60c\"}],\"key\":\"8e9b5ec36a844b3bad0381f0c31c476e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"ab14ec1d904447f496696a47ec6b72f5\"}],\"key\":\"c8613c3576ad4f0cb6f274941defcb6f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_layerNorm3): LayerNorm((64,), eps=1e-05, elementwise_affine=True)\",\"marks\":[]}],\"key\":\"56c4edcf7a254d99b7f319bfc4a436fb\"}],\"key\":\"d4bca69a47d346b1a7d543ced246d408\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (_dropout): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"88dc1b9db4194a08b079dbddd02a6d6e\"}],\"key\":\"c9fae12f381041d49a85df36597cd834\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"03d35b5e436b45b3bd60220500460eb4\"}],\"key\":\"917f9e2b16ca4dc08620f23069a2df42\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"1a3ecfffd29f4fada14688bd807063a9\"}],\"key\":\"11751756f22947e189aa7fc2b05ee120\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (out_linear): Linear(in_features=64, out_features=1, bias=True)\",\"marks\":[]}],\"key\":\"39ccd9ccc14e48a89b836f2f2c0536ac\"}],\"key\":\"7fb52664ed284c31961bb3348d598675\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\")\",\"marks\":[]}],\"key\":\"ed2ee01f3b2f4f49adeddb87c93a6789\"}],\"key\":\"d69d945de567425b87c72899f2345d3c\"}],\"key\":\"2bc0514d4000488bb12c6392401c80ca\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n55:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"python\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"arc = {\",\"marks\":[]}],\"key\":\"7b4dba515afb47f8a9f9f223cc4fa20c\"}],\"key\":\"6d444774a4c849bfbe854708cd92fd8f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'dag_in_shape': {'image': [3, 20, 20], 'vector': [8]},\",\"marks\":[]}],\"key\":\"c3734f646eb54e43a37f9b3e6efdfca6\"}],\"key\":\"51c62f73030546978ef8a7d9c1b1e833\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":["])</script><script>self.__next_f.push([1,"{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'image': {\",\"marks\":[]}],\"key\":\"3f7dd03ce8414f68a668ba758a8b84c8\"}],\"key\":\"fe0f35e5c65e45189bab6f412e2c0ffe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'Conv2d',\",\"marks\":[]}],\"key\":\"aa4a97f155844f33a84d2088f40c6b24\"}],\"key\":\"087c4169f8d84cfdbd3e51fcd1c0ea63\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'in_names': ['image'],\",\"marks\":[]}],\"key\":\"3aef3d97b4604451a4c1448f3bd34dfd\"}],\"key\":\"c9b75affb7ef40fa818b17af786f54df\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'layers': [\",\"marks\":[]}],\"key\":\"8908b3a913764c2d9051452ed4b0794d\"}],\"key\":\"6e0f2b6ccaaf437aa1bc422fcc0db5fd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" [16, 4, 2, 0, 1],\",\"marks\":[]}],\"key\":\"1fa5564abd424149a82ceaec53819049\"}],\"key\":\"0947cc4ebfaf416bb3ca47ab7a77bab2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" [16, 4, 1, 0, 1]\",\"marks\":[]}],\"key\":\"4cfbc4977ffc4fcf9e8927bcd1f290d2\"}],\"key\":\"90ba44c3c9694a919ff75233aab87c56\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" ],\",\"marks\":[]}],\"key\":\"a68f4192e9f440afa2a4c8e227b124fd\"}],\"key\":\"8a516f01d2e049a083193bb666a569fc\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'batch_norm': True,\",\"marks\":[]}],\"key\":\"adece6fb83f14459bd7796d9b14e702a\"}],\"key\":\"751359a4ef15463d90100441e068495f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'activation': 'ReLU',\",\"marks\":[]}],\"key\":\"251316c369434d1da4a98bf29a900bd5\"}],\"key\":\"230ee9cdc35f411b987cc03fab82eefb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'dropout': 0.2,\",\"marks\":[]}],\"key\":\"316991b5a73d4923b750f5d7404e305b\"}],\"key\":\"d4f11cd1d1854e3ebc3c1ca5fa569110\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'init': 'kaiming_uniform_',\",\"marks\":[]}],\"key\":\"f602437631384b8b83e23a66b07c750d\"}],\"key\":\"798700c0e1c2450bbc409b06c54bcacd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" },\",\"marks\":[]}],\"key\":\"bd2d0f53472f4d199c8dd88437c29181\"}],\"key\":\"4014fdf0608643d3af390aa3880d952e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'merge': {\",\"marks\":[]}],\"key\":\"18e7dba53f7f42108e01c81f016729c6\"}],\"key\":\"91e1db3ee1e049018f7aabfddb7f38f0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'FiLMMerge',\",\"marks\":[]}],\"key\":\"931ac4429bbd4740a1041e2391c2ccf4\"}],\"key\":\"d5800844015448fcae3c8707c4e93046\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'in_names': ['image', 'vector'],\",\"marks\":[]}],\"key\":\"24d7c373bab8451f9eb780560a42237f\"}],\"key\":\"82036996f1a04a0eb2e10ebf9d062f8d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'names': {'feature': 'image', 'conditioner': 'vector'},\",\"marks\":[]}],\"key\":\"e63f005db494463eadbaeb303967dd92\"}],\"key\":\"1c215fc60f7740f898a7dcf8e62c886a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" },\",\"marks\":[]}],\"key\":\"22a42a041bf84affaab2b65cc94c"])</script><script>self.__next_f.push([1,"0f54\"}],\"key\":\"6b8974ba72e94b63849b5aa115d1bdd4\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'Flatten': {\",\"marks\":[]}],\"key\":\"9369dd231960476da50d7f6a25c5c99b\"}],\"key\":\"0093c3e06b544259b270d0bd96161e19\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'Flatten'\",\"marks\":[]}],\"key\":\"a8d42630579f4054a7a87a1963fe3c52\"}],\"key\":\"e464a45241ca41358b05d2ffb25c239f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" },\",\"marks\":[]}],\"key\":\"c150cce06d52431fad1404be93c9a3f8\"}],\"key\":\"51e3bcdfb05848eda2f2dad0e41ef5df\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'Linear': {\",\"marks\":[]}],\"key\":\"63f656ee2b724205bef24126acaff45c\"}],\"key\":\"f4b6bec13d5842f8aae6261727b02517\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'Linear',\",\"marks\":[]}],\"key\":\"bddc77059fbb4da7a201853476513716\"}],\"key\":\"616153013f6f4190b5ad9d535f995df5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'layers': [64, 32],\",\"marks\":[]}],\"key\":\"0255f7a997cf4e5bb557d95fcb08cfe4\"}],\"key\":\"608bc1c0f6a44a8b85346ef5bd62433c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'batch_norm': True,\",\"marks\":[]}],\"key\":\"b80e4aa559be4fecaa6575ca8edb742d\"}],\"key\":\"04c82cb7cce7453da3c0d6ec5d58e5c3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'activation': 'ReLU',\",\"marks\":[]}],\"key\":\"a91edb99f3274306850d587231ff2771\"}],\"key\":\"858687863b1a48cc87f196618c671b9d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'dropout': 0.2,\",\"marks\":[]}],\"key\":\"f906ead58a51429d98c65805e995c5a8\"}],\"key\":\"09f8360a5b1d4735b76ef767291bfc34\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'init': 'kaiming_uniform_',\",\"marks\":[]}],\"key\":\"7de29f1eaec841c6b7e1097f4120a808\"}],\"key\":\"1cd6341bc6db467cacd2373c710aaa40\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" },\",\"marks\":[]}],\"key\":\"95e453049c2d4a678ac17c7a7020874c\"}],\"key\":\"5ee540f9a6c445a3a047bd8d07e73212\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'out': {\",\"marks\":[]}],\"key\":\"858a0df64bf14a69b7232ee6849acc1a\"}],\"key\":\"924bd7de0cbc470487962401d90ab73e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'Linear',\",\"marks\":[]}],\"key\":\"60222f4c025d4579bf1ccdd4718c95b4\"}],\"key\":\"81bb22d0c99b4bc1a42b6bbd1440dad2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'out_features': 8,\",\"marks\":[]}],\"key\":\"3ce80b0788a944dcabc71143f487a7d2\"}],\"key\":\"3eed3068c17a4b8496a4c85d4de43d3a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" },\",\"marks\":[]}],\"key\":\"e9438e0a813f4f0188335934071d8ab8\"}],\"key\":\"ff3376d7e0d6425baea383d5b71f4dff\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'fork': {\",\"marks\":[]}],\"key\":\"ecb6576fcbf3482e80975dda82c8af4d\"}],\"key\":\"9a4be73426ed4157883953e3ed28cb25\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'SplitFork',\",\"marks\":["])</script><script>self.__next_f.push([1,"]}],\"key\":\"c9f3d6d07a174631b39d3203db3811c2\"}],\"key\":\"246a2c1dd1674390be1cf485cdf89874\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'shapes': {'mean': [4], 'std': [4]},\",\"marks\":[]}],\"key\":\"81a130f4ae55436aaf07ab7aebd73fc1\"}],\"key\":\"d075cef4a2e341eaab9f3499c6aae4dd\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" }\",\"marks\":[]}],\"key\":\"9aedfb161ac04a74a9aa5dccc3de8890\"}],\"key\":\"b2fe5552b51044d28510246b3fc9b1b3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"17525a92a6d84a28a4aff0ffd74f1d88\"}],\"key\":\"544ff6cf20e94eaab0ab2ee000e3d74e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"model = torcharc.build(arc)\",\"marks\":[]}],\"key\":\"52f404ab509c46b88c1e7ea94c87824b\"}],\"key\":\"920d6ce34d1a4a4e902220f76f072e1a\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"e4c2a7eb76ba485898e99a146f6394f3\"}],\"key\":\"5761adb0c519427588e78dbea73635ce\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"batch_size = 16\",\"marks\":[]}],\"key\":\"6856f0a4067a46beba91dda1892bcedb\"}],\"key\":\"6768c54e43be4f90bd07fcc71b7c9735\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"dag_in_shape = arc['dag_in_shape']\",\"marks\":[]}],\"key\":\"3118f717ea3147f28d6f14d1478a9474\"}],\"key\":\"5869dec8d1e8457aa62d86c87a594b22\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"xs = {'image': torch.rand([batch_size, *dag_in_shape['image']]), 'vector': torch.rand([batch_size, *dag_in_shape['vector']])}\",\"marks\":[]}],\"key\":\"23db59d6a8f645ae8fc4b73588a91c60\"}],\"key\":\"1af9d519e8e143cea8e31297961842e8\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"# returns dict of Tensors if output is multi-modal, Tensor otherwise\",\"marks\":[]}],\"key\":\"5ee08a4b115945fc883fc318eacf4013\"}],\"key\":\"5cc27999eb9a42b78d63a7e487f6d75c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"ys = model(xs)\",\"marks\":[]}],\"key\":\"f128f1c576984536afbb0a3343fe60f2\"}],\"key\":\"25c258bea85d4534a6608e141741badf\"}],\"key\":\"bc3eee8427f1444ca16364d7ab76b6bf\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n56:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"DAGNet(\",\"marks\":[]}],\"key\":\"8d125d2299a84f5facb746dbcd64975a\"}],\"key\":\"5858f2773981490b96306b39752b6de1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (module_dict): ModuleDict(\",\"marks\":[]}],\"key\":\"ea37dd895bd1415e9efcb11abac824b7\"}],\"key\":\"9ade8050c25944509d53d1e3d8f38f58\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (image): Sequential(\",\"marks\":[]}],\"key\":\"2c2323ff62bc4e83b17859eace813684\"}],\"key\":\"b29a0b2406104ee3a2a8ae597c197726\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (0): Conv2d(3, 16, kernel_size=(4, 4), stride=(2, 2))\",\"marks\":[]}],\"key\":\"e6aa56454d1843b9b9229eb58cdd79f6\"}],\"key\":\"8445b87c299748f0a5084f8354a5eccb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running"])</script><script>self.__next_f.push([1,"_stats=True)\",\"marks\":[]}],\"key\":\"f5700f739622439387619ad30056c0a3\"}],\"key\":\"8024b34999ea4ea4866129a41c23d59d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (2): ReLU()\",\"marks\":[]}],\"key\":\"8630808d9c4c42039b2a160de84b2ffa\"}],\"key\":\"c23b4a93cfc745628d13a8db10e96614\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (3): Dropout2d(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"99f451bfd2cf48339765bdff48bc51a9\"}],\"key\":\"e6e74e204e924893b450d85d73b14faf\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (4): Conv2d(16, 16, kernel_size=(4, 4), stride=(1, 1))\",\"marks\":[]}],\"key\":\"ec568726284f4c64b4e2f39ff3485700\"}],\"key\":\"f705e0aaf4a944cf972f0db364fcc0e3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (5): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\",\"marks\":[]}],\"key\":\"5779180e6d2b4918b463b7397603d4af\"}],\"key\":\"3a30be37adbe464c98806d7bed49ad92\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (6): ReLU()\",\"marks\":[]}],\"key\":\"cda55351736b4e80a390d52eeb9613de\"}],\"key\":\"2e29eb59eeda43469a3280fe2b4fe702\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (7): Dropout2d(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"501db5e4c12a475c933952ee44da0df4\"}],\"key\":\"133e273168704950bfd14a0aa7e97ab9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"7aae14b5cdbf4f52a3cfccf01ddc8348\"}],\"key\":\"06ab0f6cfb9d4bd3a237b563c02d3bee\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (merge): FiLMMerge(\",\"marks\":[]}],\"key\":\"a31c4b05fb9b4e3e8b45a10b518e4098\"}],\"key\":\"2afacd5177934750a59d1a3ecfec056e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (conditioner_scale): Linear(in_features=8, out_features=16, bias=True)\",\"marks\":[]}],\"key\":\"82d74793ca674a75bad991cdbe04df70\"}],\"key\":\"4d8f4833f81b478a84d5b80d7b4dcfe7\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (conditioner_shift): Linear(in_features=8, out_features=16, bias=True)\",\"marks\":[]}],\"key\":\"9e0cf239b239408bb7019d39b8c3dafa\"}],\"key\":\"5f34d9f6bfa44857bb98cf9580cd0279\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"34670cab96ec443fb05680d2f5c4c961\"}],\"key\":\"57d882f3421b438da223e3f5bdca18eb\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (Flatten): Flatten()\",\"marks\":[]}],\"key\":\"acf2fabec81e490b8e1eb2d5d6359d2e\"}],\"key\":\"e8284377bced47bd91534d3fc5a02550\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (Linear): Sequential(\",\"marks\":[]}],\"key\":\"f9e577e05d98411a957f6c21045b2c46\"}],\"key\":\"c7ca4151fddc4e919672cd9337827b5c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (0): Linear(in_features=576, out_features=64, bias=True)\",\"marks\":[]}],\"key\":\"fee621e6866e4da8a5610527c60088b4\"}],\"key\":\"e12e84005fa04b13b9ae3cf020ca64a9\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\",\"marks\":[]}],\"key\":\"adf63784ce4d4216bbde435190a02cbf\"}],\"key\":\"1d9bcb0b58024e87a9f8"])</script><script>self.__next_f.push([1,"c3d80e67378c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (2): ReLU()\",\"marks\":[]}],\"key\":\"d49f39b49e8447d4a10bfb73bce544dd\"}],\"key\":\"34d1f86712884d84886e8cb87ff519e1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (3): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"ced935c1d6f045519e63748f18cfc008\"}],\"key\":\"20afc0f6a7a649a6a451d7fc0567439b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (4): Linear(in_features=64, out_features=32, bias=True)\",\"marks\":[]}],\"key\":\"c82796b2226f4eff9902f5c5afc6591b\"}],\"key\":\"86ef51b368c04098aa6e2991264cf602\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (5): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\",\"marks\":[]}],\"key\":\"62cd8b691def41d9b30f42ae75bbfc83\"}],\"key\":\"3ff1808431fa47f089486bfd0562b435\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (6): ReLU()\",\"marks\":[]}],\"key\":\"29f4bf9a616b4f9f9206f789e3b2bd20\"}],\"key\":\"dd0b8d89e8a14f5390e57e07f54df01b\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (7): Dropout(p=0.2, inplace=False)\",\"marks\":[]}],\"key\":\"e59004b72eab4b6da45fdf1b246a3c40\"}],\"key\":\"2b1eb4657d6a42a282d1258b56ae924c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"59b7db41b8d0477e9264a7786625aed5\"}],\"key\":\"f19ed6e543834226a2d965f08827e1fe\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (out): Linear(in_features=32, out_features=8, bias=True)\",\"marks\":[]}],\"key\":\"4f1582d5b93f494689d5cfe55fe80107\"}],\"key\":\"58cd459bd72f44ca82e702f18dbe29af\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" (fork): SplitFork()\",\"marks\":[]}],\"key\":\"00fafacfcd5c4f17a6b842d525fad2f3\"}],\"key\":\"a613690b65b0426fb2a03332961b8a6f\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" )\",\"marks\":[]}],\"key\":\"d5c8aaafc31e4e9fb37ecbaf03b04ba1\"}],\"key\":\"bf9d0e37d24941de88eebd77e3952ca3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\")\",\"marks\":[]}],\"key\":\"8c69f610c96745e3802fbca0c22804d6\"}],\"key\":\"6d95fab36dc8429b8404466a061ad215\"}],\"key\":\"fc93a64946ba48dbaed1643f802d9172\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n57:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{\"syntax\":\"python\"},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"import torcharc\",\"marks\":[]}],\"key\":\"13aef78689a243c3904b253289aac03a\"}],\"key\":\"eb56e2d95ff246999c5cd286cf5df18d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"431bccb6875a409a8f090271eb3d71e9\"}],\"key\":\"557680cddaee4517a054129a03ea9fb0\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"36fb12a1b7e345a49f55989661670bee\"}],\"key\":\"7bd27d99e3a64fbd9df02eaf12b7cb38\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"arc = {\",\"marks\":[]}],\"key\":\"894fe01e30b8485387b914ebf6427d8a\"}],\"key\":\"611a72f6365b4880938e1a21bb8dd5ef\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\""])</script><script>self.__next_f.push([1,":\"leaf\",\"text\":\" 'type': 'Linear',\",\"marks\":[]}],\"key\":\"6361830fce3349aca25ceac60af662a1\"}],\"key\":\"ad717d627e4640168f4732df2c8021ea\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'in_features': 8,\",\"marks\":[]}],\"key\":\"bd4a0a3940fb432f82660030a8e31cb1\"}],\"key\":\"a6eae13075574fbe8cca3156fdc42727\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'layers': [64, 32],\",\"marks\":[]}],\"key\":\"f0bbe68a8b59474b94670145631959ec\"}],\"key\":\"d7652bce620545b2848be10fcff1c3ac\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'batch_norm': True,\",\"marks\":[]}],\"key\":\"a0c6a1caed2147a99356b09212b49477\"}],\"key\":\"0dfd25b1d4d34f10a466a7c8a8d44285\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'activation': 'ReLU',\",\"marks\":[]}],\"key\":\"40e2c91db94f45b6b57b234b38b88407\"}],\"key\":\"03b97854aa3241bd9d232089555c8e95\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'dropout': 0.2,\",\"marks\":[]}],\"key\":\"fd909378abcd47ed88b9063ef7df61ce\"}],\"key\":\"279b1192050d4f12b14b72b4b174b8b1\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'init': {\",\"marks\":[]}],\"key\":\"9b05e32c3cbd48bda983cf663ac77892\"}],\"key\":\"d298ab61e9cd41f99dd83259f7b83c35\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'normal_',\",\"marks\":[]}],\"key\":\"f93b2eff1f7b41db8284813699edd432\"}],\"key\":\"1e51a8722241434585fffa973345d950\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'std': 0.01,\",\"marks\":[]}],\"key\":\"ce22d46625d44ac792326215d9de5919\"}],\"key\":\"f8fa764c40f144ecac948e8469e85dc5\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" },\",\"marks\":[]}],\"key\":\"c148079829a04c2f98d514df0412f5ee\"}],\"key\":\"fd1651273ee9450a88597c5e51bde4e2\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"8bcf7c2c9cd84f07bc7b97b1b74c6d46\"}],\"key\":\"1cd94b08838a41be96eda1a189b0c306\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"optim_spec = {\",\"marks\":[]}],\"key\":\"fd690fffc7ff48f3936e261f60466a7e\"}],\"key\":\"904dc0d8a420460fa943094f7e9b5640\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'type': 'Adam',\",\"marks\":[]}],\"key\":\"ba7cf176173c4723a2910fc42e6fa5e1\"}],\"key\":\"bfe27f0b6c71453a9076e725f94d4983\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" 'lr': 0.001,\",\"marks\":[]}],\"key\":\"7ff23c4f63a3453184cf65bb453faad6\"}],\"key\":\"826bd1bce3ce4c4a97c348ecae6ef653\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"}\",\"marks\":[]}],\"key\":\"6bdbdf44afa84ed2832fbcdeeddc2d20\"}],\"key\":\"08cd0e97d014435b9904be707700d7a3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"\",\"marks\":[]}],\"key\":\"464ee34ade0c4d0390fa7211ce8b92b6\"}],\"key\":\"9eaa2dfbea0043abb3c2b6ff1d39520c\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"model = torcharc.build(arc)\",\"marks\":[]}],\"key\":\"883b2fd28895400bb793dc85491cd4d6\"}],\"key\":\"faa0c96580cf41aca7598ef98b4f0b2d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"optimizer = torcha"])</script><script>self.__next_f.push([1,"rc.build_optimizer(optim_spec, model)\",\"marks\":[]}],\"key\":\"e25e8ea72c71422b8a351237c069e7a1\"}],\"key\":\"b7fbc0f81a9849aebb15d3451176d69a\"}],\"key\":\"9f485b9be9594b469bf62bd557e32b2b\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n58:[\"$\",\"$L5d\",null,{\"block\":{\"object\":\"block\",\"type\":\"code\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Adam (\",\"marks\":[]}],\"key\":\"3664d98c30ac4804a8d780f6062e1a8a\"}],\"key\":\"b954929a6f524995a0d38054e42c6f04\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\"Parameter Group 0\",\"marks\":[]}],\"key\":\"7a96678841ae495bbf54193396e38041\"}],\"key\":\"31e35a6eb1f94b97b0953c368ee98421\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" amsgrad: False\",\"marks\":[]}],\"key\":\"4fc7ca0e84a745f4af94b72cafac8260\"}],\"key\":\"55e1afab8cc84248a88c97532f601d22\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" betas: (0.9, 0.999)\",\"marks\":[]}],\"key\":\"d553f41c4cc343be96d5a9d71b6e9c6c\"}],\"key\":\"ade1c8aff49a431882a6eb71e80da08d\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" eps: 1e-08\",\"marks\":[]}],\"key\":\"2e26425623d94a84818b6ee2b6fe2928\"}],\"key\":\"b1d6dd4c58a24fa18d08e64b1b4d0bf3\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" lr: 0.001\",\"marks\":[]}],\"key\":\"7a538aae32c0423d9ffa649d6fdb8185\"}],\"key\":\"1957e400789e4c32990b62a3cc70b82e\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\" weight_decay: 0\",\"marks\":[]}],\"key\":\"6abb2e5b60a14c72a760aa9a81486396\"}],\"key\":\"22a746964ab945ca9d9c5bfbe24cee35\"},{\"object\":\"block\",\"type\":\"code-line\",\"isVoid\":false,\"data\":{},\"nodes\":[{\"object\":\"text\",\"leaves\":[{\"object\":\"leaf\",\"text\":\")\",\"marks\":[]}],\"key\":\"acbca885c85648a2b13283588dc44508\"}],\"key\":\"e663aad393ff4b78a8d367c44ff877f7\"}],\"key\":\"4dc55c6ad8d0424185df35c73c86013f\"},\"style\":[\"mx-auto w-full decoration-primary/6\",\"max-w-3xl\",\"flip-heading-hash\"],\"inlines\":[]}]\n59:[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row mt-6 gap-2 max-w-3xl mx-auto page-api-block:ml-0 text-tint\",\"children\":[[\"$\",\"$L37\",null,{\"href\":\"/blog/ml/running-wandb-on-kubernetes\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-MAHk614mgFNczHfbmPW\"},\"position\":\"content\"}},\"className\":\"group text-sm p-2.5 flex gap-4 flex-1 flex-row-reverse items-center pl-4 border border-tint-subtle rounded straight-corners:rounded-none hover:border-primary text-pretty md:p-4 md:text-base\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex flex-col flex-1 text-right\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs\",\"children\":\"Previous\"}],[\"$\",\"span\",null,{\"className\":\"text-tint-strong group-hover:text-primary line-clamp-2\",\"children\":\"Running WandB on Kubernetes\"}]]}],[\"$\",\"$L38\",null,{\"icon\":\"chevron-left\",\"className\":\"hidden size-4 text-tint-subtle contrast-more:text-tint-strong group-hover:text-primary md:block\"}]]}],[\"$\",\"$L37\",null,{\"href\":\"/blog/ml/distributed-training-with-torchelastic-on-kubernetes\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"page\",\"page\":\"-Mew4Tx_YTDHMHUspyI7\"},\"position\":\"content\"}},\"className\":\"group text-sm p-2.5 flex gap-4 flex-1 flex-row items-center pr-4 border border-tint-subtle rounded straight-corners:rounded-none hover:border-primary text-pretty md:p-4 md:text-base\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex flex-col flex-1\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs\",\"children\":\"Next\"}],[\"$\",\"span\",null,{\"className\":\"text-tint-strong group-hover:text-primary line-clamp-2\",\"children\":\"Distributed Training with TorchElastic on Kubernetes\"}]]}],[\"$\",\"$L38\",null,{\"icon\":\"chevron-righ"])</script><script>self.__next_f.push([1,"t\",\"className\":\"hidden size-4 text-tint-subtle contrast-more:text-tint-strong group-hover:text-primary md:block\"}]]}]]}]\n42:[\"$\",\"$L5e\",null,{\"sections\":[{\"id\":\"example-usage\",\"title\":\"Example Usage\",\"depth\":1},{\"id\":\"convnet\",\"title\":\"ConvNet\",\"depth\":2},{\"id\":\"mlp\",\"title\":\"MLP\",\"depth\":2},{\"id\":\"time-series-transformer\",\"title\":\"Time-Series Transformer\",\"depth\":2},{\"id\":\"dag-hydra\",\"title\":\"DAG: Hydra\",\"depth\":2},{\"id\":\"optimizer\",\"title\":\"Optimizer\",\"depth\":2}]}]\n48:[\"$\",\"$L37\",null,{\"href\":\"https://github.com/kengz/torcharc\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://github.com/kengz/torcharc\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":\"TorchArc\"}]]],\"className\":\"underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100\"}]\n4a:[\"$\",\"$L37\",null,{\"href\":\"https://github.com/kengz/torcharc/tree/master/torcharc/module\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://github.com/kengz/torcharc/tree/master/torcharc/module\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"torcharc/module\"}]}]]],\"className\":\"underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100\"}]\n4b:[\"$\",\"$L37\",null,{\"href\":\"https://github.com/kengz/torcharc/blob/master/torcharc/module_builder.py\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://github.com/kengz/torcharc/blob/master/torcharc/module_builder.py\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"torcharc/module_builder.py\"}]}]]],\"className\":\"underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100\"}]\n4c:[\"$\",\"$L37\",null,{\"href\":\"https://github.com/kengz/torcharc/blob/master/torcharc/arc_ref.py\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://github.com/kengz/torcharc/blob/master/torcharc/arc_ref.py\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"torcharc/arc_ref.py\"}]}]]],\"className\":\"underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text"])</script><script>self.__next_f.push([1,"-decoration-skip-ink:none] transition-all duration-100\"}]\n4d:[\"$\",\"$L37\",null,{\"href\":\"https://github.com/kengz/torcharc/tree/master/test/module\",\"insights\":{\"type\":\"link_click\",\"link\":{\"target\":{\"kind\":\"url\",\"url\":\"https://github.com/kengz/torcharc/tree/master/test/module\"},\"position\":\"content\"}},\"children\":[[[\"$\",\"$47\",\"0\",{\"children\":[\"$\",\"code\",null,{\"className\":\"py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]\",\"children\":\"test/module/\"}]}]]],\"className\":\"underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100\"}]\n"])</script><div hidden id="S:0"><div class="flex grow flex-row-reverse justify-end"><aside class="group/aside hidden xl:flex flex-col basis-56 grow-0 shrink-0 break-anywhere text-tint contrast-more:text-tint-strong sticky lg:top-0 lg:max-h-screen site-header:lg:top-16 site-header:lg:max-h-[calc(100vh_-_4rem)] site-header-sections:lg:top-[6.75rem] site-header-sections:lg:max-h-[calc(100vh_-_6.75rem)] page-api-block:xl:max-2xl:z-10 page-api-block:xl:max-2xl:fixed page-api-block:xl:max-2xl:right-8 page-api-block:xl:max-2xl:w-56 page-api-block:xl:max-2xl:bg-tint/9 page-api-block:xl:max-2xl:contrast-more:bg-tint page-api-block:xl:max-2xl:backdrop-blur-lg page-api-block:xl:max-2xl:border page-api-block:xl:max-2xl:border-tint page-api-block:xl:max-2xl:hover:shadow-lg page-api-block:xl:max-2xl:hover:shadow-tint-12/1 page-api-block:xl:max-2xl:dark:hover:shadow-tint-1/1 page-api-block:xl:max-2xl:rounded-md page-api-block:xl:max-2xl:h-auto page-api-block:xl:max-2xl:my-8 page-api-block:p-2"><div class="hidden page-api-block:xl:max-2xl:flex text-xs tracking-wide font-semibold uppercase flex-row items-center gap-2"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/block-quote.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-3"></svg>On this page<svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-down.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon size-3 opacity-6 ml-auto page-api-block:xl:max-2xl:group-hover/aside:hidden"></svg></div><div class="overflow-y-auto overflow-x-visible flex flex-col shrink pb-12 sticky lg:top:0 site-header:lg:top-16 site-header-sections:lg:top-[6.75rem] gap-6 pt-8 page-api-block:xl:max-2xl:py-0 page-api-block:xl:max-2xl:hidden page-api-block:xl:max-2xl:group-hover/aside:flex"><!--$--><ul class="sidebar-list-line:border-l border-tint-subtle"><li class="flex flex-row relative h-fit mt-2"><a href="#example-usage" class="relative z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current"><span class="">Example Usage</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#convnet" class="relative z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">ConvNet</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#mlp" class="relative z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">MLP</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#time-series-transformer" class="relative z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Time-Series Transformer</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#dag-hydra" class="relative z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">DAG: Hydra</span></a></li><li class="flex flex-row relative h-fit ml-3 my-0 sidebar-list-line:ml-0"><a href="#optimizer" class="relative z-10 text-sm w-full py-1 px-3 transition-all duration-200 rounded-md straight-corners:rounded-none sidebar-list-line:rounded-l-none hover:bg-tint-hover theme-gradient:hover:bg-tint-12/1 hover:text-tint-strong contrast-more:hover:ring-1 contrast-more:hover:ring-inset contrast-more:hover:ring-current subitem sidebar-list-line:pl-6 opacity-8 contrast-more:opacity-11 sidebar-list-default:rounded-l-none sidebar-list-default:border-l sidebar-list-default:border-tint"><span class="">Optimizer</span></a></li></ul><!--/$--><div class="flex flex-col gap-3 sidebar-list-default:px-3 border-t first:border-none border-tint-subtle py-4 first:pt-0 page-api-block:xl:max-2xl:px-3 empty:hidden"><!--$--><div class="flex flex-col gap-3 text-sm mt-2"><div class="flex flex-wrap items-center gap-2"><p>Was this helpful?</p><div class="rounded-full border border-tint-subtle bg-tint-base contrast-more:border-tint-12"><div class="flex"><button class="p-2 first:rounded-l-full first:pl-2.5 last:rounded-r-full last:pr-2.5 hover:bg-primary-hover hover:text-primary-strong disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit ring-tint contrast-more:hover:ring-1 disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="No" title="No"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.66782 13.3737C4.87421 13.5572 5.19025 13.5386 5.3737 13.3322C7.30371 11.1609 10.6963 11.1609 12.6263 13.3322C12.8098 13.5386 13.1258 13.5572 13.3322 13.3737C13.5386 13.1902 13.5572 12.8742 13.3737 12.6678C11.0459 10.049 6.9541 10.049 4.6263 12.6678C4.44284 12.8742 4.46143 13.1902 4.66782 13.3737ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button><button class="p-2 first:rounded-l-full first:pl-2.5 last:rounded-r-full last:pr-2.5 hover:bg-primary-hover hover:text-primary-strong disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit ring-tint contrast-more:hover:ring-1 disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="Not sure" title="Not sure"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.5 12C4.5 11.7239 4.72386 11.5 5 11.5H13C13.2761 11.5 13.5 11.7239 13.5 12C13.5 12.2761 13.2761 12.5 13 12.5H5C4.72386 12.5 4.5 12.2761 4.5 12ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button><button class="p-2 first:rounded-l-full first:pl-2.5 last:rounded-r-full last:pr-2.5 hover:bg-primary-hover hover:text-primary-strong disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit ring-tint contrast-more:hover:ring-1 disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="Yes, it was!" title="Yes, it was!"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.66782 11.6263C4.87421 11.4428 5.19025 11.4614 5.3737 11.6678C7.30371 13.8391 10.6963 13.8391 12.6263 11.6678C12.8098 11.4614 13.1258 11.4428 13.3322 11.6263C13.5386 11.8098 13.5572 12.1258 13.3737 12.3322C11.0459 14.951 6.9541 14.951 4.6263 12.3322C4.44284 12.1258 4.46143 11.8098 4.66782 11.6263ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button></div></div></div></div><!--/$--></div></div><div class="sticky bottom-0 z-10 mt-auto flex flex-col bg-tint-base theme-bold-tint:bg-tint-subtle theme-gradient-tint:bg-gradient-tint theme-gradient:bg-gradient-primary theme-muted:bg-tint-subtle pb-4 page-api-block:xl:max-2xl:hidden page-api-block:xl:max-2xl:pb-0 page-api-block:xl:max-2xl:group-hover/aside:flex page-api-block:xl:max-2xl:bg-transparent"><div class="" data-visual-test="removed"></div></div></aside><main class="relative min-w-0 flex-1 py-8 lg:px-12 break-anywhere page-api-block:xl:max-2xl:pr-0 page-api-block:mx-auto page-api-block:max-w-screen-2xl page-default-width page-has-toc"><header class="max-w-3xl mx-auto mb-6 space-y-3 page-api-block:ml-0"><nav><ol class="flex flex-wrap items-center gap-2"><li><a class="decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100 no-underline hover:underline text-xs tracking-wide font-semibold uppercase flex items-center gap-1.5 contrast-more:underline contrast-more:decoration-current" href="/blog/ml">ML</a></li></ol></nav><h1 class="text-4xl font-bold flex items-center gap-4">TorchArc</h1><p class="text-lg text-tint">2020/06/20</p></header><!--$--><div class="grid [&>*+*]:mt-5 whitespace-pre-wrap"><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">Building modular PyTorch models for my projects in the past years has prompted me to use a config-based approach to define model architecture. Over time I have iteratively refined the method, and recently I felt it has become sufficiently mature to be open sourced.</p><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">The project is known as <a class="underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100" href="https://github.com/kengz/torcharc">TorchArc</a>: Build PyTorch networks by specifying architectures. You can install it from pip:</p><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":Rsd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">pip install torcharc</span></span></code></pre></div><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">My experience from building quite a lot of models for DL and RL (which can have unconventional architecture) has resulted in the following observations:</p><ul class="min-w-0 space-y-2 mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><li class="leading-normal flex items-start"><div class="text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="flex min-w-0 flex-1 flex-col space-y-2"><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">most models are built with common components and hyperparameters - layers, width, activation, norm, dropout, init, etc. These can be specified via a config with the structure of a JSON/YAML.</p></div></li><li class="leading-normal flex items-start"><div class="text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="flex min-w-0 flex-1 flex-col space-y-2"><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">using config-based architecture frees us from frequent hard-code changes, while also immediately allow for hyperparameter optimization on the entire architecture. Yes, you can do NAS (neural architecture search) quite easily.</p></div></li><li class="leading-normal flex items-start"><div class="text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="flex min-w-0 flex-1 flex-col space-y-2"><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">sometimes we wish to compose models together, e.g. a hybrid network with a conv net and MLP for bi-modal inputs, joined together in the middle with another MLP, and split to multiple outputs for multi-modal controls.</p></div></li><li class="leading-normal flex items-start"><div class="text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="flex min-w-0 flex-1 flex-col space-y-2"><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">The composed networks is always a DAG. This means it can be specified via a JSON/YAML structure too (this can be proven mathematically, but it's not why we're here).</p></div></li></ul><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">These essentially formed the design requirement for TorchArc. Additionally, I've also added a <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">carry_forward</code> method which accepts a TensorTuple input, forward-pass any tensors in it by name-matching, and carry any unused tensors in the output. This allows a multi-modal input to be carried and forward-passed all the way until the output.</p><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">Let's jump straight into TorchArc.</p><h2 id="example-usage" class="text-3xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[1em]"><a href="#example-usage" aria-label="Direct link to heading" class="inline-flex h-full items-start leading-tight"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-tight mt-[1em]">Example Usage</div></h2><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">Given just the architecture, <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">torcharc</code> can build generic DAG (directed acyclic graph) of nn modules, which consists of:</p><ul class="min-w-0 space-y-2 mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><li class="leading-normal flex items-start"><div class="text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="flex min-w-0 flex-1 flex-col space-y-2"><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">single-input-output modules: <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">Conv1d, Conv2d, Conv3d, Linear, PTTSTransformer, TSTransformer</code> or any other valid nn.Module</p></div></li><li class="leading-normal flex items-start"><div class="text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="flex min-w-0 flex-1 flex-col space-y-2"><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">fork modules: <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">ReuseFork, SplitFork</code></p></div></li><li class="leading-normal flex items-start"><div class="text-base leading-normal mr-1 flex min-h-[1lh] min-w-6 items-center justify-center text-tint"><div class="before:font-var before:content-[--pseudoBefore--content]" style="--pseudoBefore--content:'•';--font-family:Arial;font-size:min(1.5em, 24px);line-height:1"></div></div><div class="flex min-w-0 flex-1 flex-col space-y-2"><p class="w-full decoration-primary/6 max-w-3xl min-h-[1lh] flip-heading-hash [&:is(h2)>div]:mt-0 [&:is(h3)>div]:mt-0 [&:is(h4)>div]:mt-0 mx-0">merge modules: <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">ConcatMerge, FiLMMerge</code></p></div></li></ul><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">The custom modules are defined in <a class="underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100" href="https://github.com/kengz/torcharc/tree/master/torcharc/module"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">torcharc/module</code></a>, registered in <a class="underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100" href="https://github.com/kengz/torcharc/blob/master/torcharc/module_builder.py"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">torcharc/module_builder.py</code></a>.</p><!--$--><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">The full examples of architecture references are in <a class="underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100" href="https://github.com/kengz/torcharc/blob/master/torcharc/arc_ref.py"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">torcharc/arc_ref.py</code></a>, and full functional examples are in <a class="underline decoration-[max(0.07em,1px)] underline-offset-2 links-accent:underline-offset-4 links-default:decoration-primary/6 links-default:text-primary-subtle links-default:hover:text-primary-strong links-default:contrast-more:text-primary links-default:contrast-more:hover:text-primary-strong links-accent:decoration-primary-subtle links-accent:hover:decoration-[3px] links-accent:hover:[text-decoration-skip-ink:none] transition-all duration-100" href="https://github.com/kengz/torcharc/tree/master/test/module"><code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">test/module/</code></a>. Below we walk through some main examples.</p><!--/$--><!--$--><h3 id="convnet" class="text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#convnet" aria-label="Direct link to heading" class="inline-flex h-full items-start leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">ConvNet</div></h3><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="arc" id="tab-arc" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">arc</button><button role="tab" aria-selected="false" aria-controls="model" id="tab-model" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">model</button></div><div role="tabpanel" id="arc" aria-labelledby="tab-arc" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R5jkd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">import torcharc<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">arc = {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'Conv2d',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'in_shape': [3, 20, 20],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'layers': [<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> [16, 4, 2, 0, 1],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> [16, 4, 1, 0, 1]<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> ],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'batch_norm': True,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'activation': 'ReLU',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'dropout': 0.2,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'init': 'kaiming_uniform_',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">model = torcharc.build(arc)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">batch_size = 16<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">x = torch.rand([batch_size, *arc['in_shape']])<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">y = model(x)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="model" aria-labelledby="tab-model" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R6jkd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">Sequential(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (0): Conv2d(3, 16, kernel_size=(4, 4), stride=(2, 2))<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (2): ReLU()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (3): Dropout2d(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (4): Conv2d(16, 16, kernel_size=(4, 4), stride=(1, 1))<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (5): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (6): ReLU()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (7): Dropout2d(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h3 id="mlp" class="text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#mlp" aria-label="Direct link to heading" class="inline-flex h-full items-start leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">MLP</div></h3><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="arc-1" id="tab-arc-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">arc</button><button role="tab" aria-selected="false" aria-controls="model-1" id="tab-model-1" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">model</button></div><div role="tabpanel" id="arc-1" aria-labelledby="tab-arc-1" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R5k4d9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">arc = {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'Linear',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'in_features': 8,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'layers': [64, 32],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'batch_norm': True,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'activation': 'ReLU',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'dropout': 0.2,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'init': {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'normal_',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'std': 0.01,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> },<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">model = torcharc.build(arc)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">batch_size = 16<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">x = torch.rand([batch_size, arc['in_features']])<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">y = model(x)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="model-1" aria-labelledby="tab-model-1" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R6k4d9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">Sequential(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (0): Linear(in_features=8, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (2): ReLU()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (3): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (4): Linear(in_features=64, out_features=32, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (5): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (6): ReLU()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (7): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h3 id="time-series-transformer" class="text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#time-series-transformer" aria-label="Direct link to heading" class="inline-flex h-full items-start leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Time-Series Transformer</div></h3><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="arc-2" id="tab-arc-2" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">arc</button><button role="tab" aria-selected="false" aria-controls="model-2" id="tab-model-2" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">model</button></div><div role="tabpanel" id="arc-2" aria-labelledby="tab-arc-2" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R5kkd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">arc = {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'TSTransformer',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'd_model': 64,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'nhead': 8,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'num_encoder_layers': 4,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'num_decoder_layers': 4,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'dropout': 0.2,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'dim_feedforward': 2048,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'activation': 'relu',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'in_embedding': 'Linear',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'pe': 'sinusoid',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'attention_size': None,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'in_channels': 1,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'out_channels': 1,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'q': 8,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'v': 8,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'chunk_mode': None,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">model = torcharc.build(arc)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">seq_len = 32<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">x = torch.rand([seq_len, arc['in_channels']])</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="model-2" aria-labelledby="tab-model-2" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R6kkd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">TSTransformer(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (in_embedding): Linear(in_features=1, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (pe): SinusoidPE(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (dropout): Dropout(p=0.1, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (encoders): Sequential(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (0): Encoder(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_selfAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_feedForward): PositionwiseFeedForward(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear1): Linear(in_features=64, out_features=2048, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear2): Linear(in_features=2048, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_dropout): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (1): Encoder(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_selfAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_feedForward): PositionwiseFeedForward(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear1): Linear(in_features=64, out_features=2048, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear2): Linear(in_features=2048, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_dropout): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (2): Encoder(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_selfAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_feedForward): PositionwiseFeedForward(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear1): Linear(in_features=64, out_features=2048, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear2): Linear(in_features=2048, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_dropout): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (3): Encoder(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_selfAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_feedForward): PositionwiseFeedForward(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear1): Linear(in_features=64, out_features=2048, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear2): Linear(in_features=2048, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_dropout): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (decoders): ModuleList(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (0): Decoder(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_selfAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_encoderDecoderAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_feedForward): PositionwiseFeedForward(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear1): Linear(in_features=64, out_features=2048, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear2): Linear(in_features=2048, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm3): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_dropout): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (1): Decoder(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_selfAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_encoderDecoderAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_feedForward): PositionwiseFeedForward(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear1): Linear(in_features=64, out_features=2048, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear2): Linear(in_features=2048, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm3): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_dropout): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (2): Decoder(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_selfAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_encoderDecoderAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_feedForward): PositionwiseFeedForward(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear1): Linear(in_features=64, out_features=2048, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear2): Linear(in_features=2048, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm3): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_dropout): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (3): Decoder(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_selfAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_encoderDecoderAttention): MultiHeadAttention(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_q): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_k): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_v): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_W_o): Linear(in_features=64, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_feedForward): PositionwiseFeedForward(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear1): Linear(in_features=64, out_features=2048, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_linear2): Linear(in_features=2048, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_layerNorm3): LayerNorm((64,), eps=1e-05, elementwise_affine=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (_dropout): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (out_linear): Linear(in_features=64, out_features=1, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><h3 id="dag-hydra" class="text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#dag-hydra" aria-label="Direct link to heading" class="inline-flex h-full items-start leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">DAG: Hydra</div></h3><!--/$--><!--$--><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">Ultimately, we can build a generic DAG network using the modules linked by the fork and merge modules. The example below shows HydraNet - a network with multiple inputs and multiple outputs.</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="arc-3" id="tab-arc-3" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">arc</button><button role="tab" aria-selected="false" aria-controls="model-3" id="tab-model-3" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">model</button></div><div role="tabpanel" id="arc-3" aria-labelledby="tab-arc-3" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R5lcd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">arc = {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'dag_in_shape': {'image': [3, 20, 20], 'vector': [8]},<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'image': {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'Conv2d',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'in_names': ['image'],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'layers': [<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> [16, 4, 2, 0, 1],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> [16, 4, 1, 0, 1]<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> ],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'batch_norm': True,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'activation': 'ReLU',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'dropout': 0.2,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'init': 'kaiming_uniform_',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> },<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'merge': {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'FiLMMerge',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'in_names': ['image', 'vector'],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'names': {'feature': 'image', 'conditioner': 'vector'},<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> },<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'Flatten': {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'Flatten'<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> },<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'Linear': {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'Linear',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'layers': [64, 32],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'batch_norm': True,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'activation': 'ReLU',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'dropout': 0.2,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'init': 'kaiming_uniform_',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> },<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'out': {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'Linear',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'out_features': 8,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> },<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'fork': {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'SplitFork',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'shapes': {'mean': [4], 'std': [4]},<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> }<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">model = torcharc.build(arc)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">batch_size = 16<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">dag_in_shape = arc['dag_in_shape']<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">xs = {'image': torch.rand([batch_size, *dag_in_shape['image']]), 'vector': torch.rand([batch_size, *dag_in_shape['vector']])}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"># returns dict of Tensors if output is multi-modal, Tensor otherwise<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">ys = model(xs)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="model-3" aria-labelledby="tab-model-3" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R6lcd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">DAGNet(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (module_dict): ModuleDict(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (image): Sequential(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (0): Conv2d(3, 16, kernel_size=(4, 4), stride=(2, 2))<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (2): ReLU()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (3): Dropout2d(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (4): Conv2d(16, 16, kernel_size=(4, 4), stride=(1, 1))<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (5): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (6): ReLU()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (7): Dropout2d(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (merge): FiLMMerge(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (conditioner_scale): Linear(in_features=8, out_features=16, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (conditioner_shift): Linear(in_features=8, out_features=16, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (Flatten): Flatten()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (Linear): Sequential(<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (0): Linear(in_features=576, out_features=64, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (2): ReLU()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (3): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (4): Linear(in_features=64, out_features=32, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (5): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (6): ReLU()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (7): Dropout(p=0.2, inplace=False)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (out): Linear(in_features=32, out_features=8, bias=True)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> (fork): SplitFork()<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> )<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--><!--$--><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">The DAG module accepts a <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">dict</code> (example below) as input, and the module selects its input by matching its own name in the arc and the <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">in_name</code>, then carry forward the output together with any unconsumed inputs.</p><!--/$--><!--$--><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">For example, the input <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">xs</code> with keys <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">image, vector</code> passes through the first <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">image</code> module, and the output becomes <code class="py-[1px] px-1.5 min-w-[1.625rem] justify-center items-center ring-1 ring-inset ring-tint bg-tint rounded text-[.875em] leading-[calc(max(1.20em,1.25rem))]">{'image': image_module(xs.image), 'vector': xs.vector}</code>. This is then passed through the remainder of the modules in the arc as declared.</p><!--/$--><!--$--><h3 id="optimizer" class="text-2xl font-semibold heading group relative grid mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div class="hash grid grid-area-1-1 relative -ml-6 w-7 border-0 opacity-0 group-hover:opacity-[0] group-focus:opacity-[0] md:group-hover:md:opacity-[1] md:group-focus:md:opacity-[1] mt-[0.75em]"><a href="#optimizer" aria-label="Direct link to heading" class="inline-flex h-full items-start leading-snug"><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/hashtag.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon w-3.5 h-[1em] mt-0.5 transition-colors text-transparent group-hover:text-tint-subtle contrast-more:group-hover:text-tint-strong lg:w-4"></svg></a></div><div class="grid-area-1-1 z-[1] justify-self-start text-left leading-snug mt-[0.75em]">Optimizer</div></h3><!--/$--><!--$--><p class="mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0">TorchArc also provides convenience method to construct optimizer in the same config-driven manner.</p><!--/$--><!--$--><div class="rounded-lg straight-corners:rounded-sm ring-1 ring-inset ring-tint-subtle flex overflow-hidden flex-col mx-auto w-full decoration-primary/6 max-w-3xl page-api-block:ml-0"><div role="tablist" class="group/tabs inline-flex flex-row self-stretch after:flex-[1] after:bg-tint-12/1 [&:has(button.active-tab:last-of-type):after]:rounded-bl-md"><button role="tab" aria-selected="true" aria-controls="arc-4" id="tab-arc-4" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent hover:text-tint-strong truncate max-w-full shrink-0 active-tab text-tint-strong bg-transparent after:[&.active-tab]:border-transparent after:[:has(+_&.active-tab)]:border-transparent after:[:has(&_+)]:border-transparent">arc</button><button role="tab" aria-selected="false" aria-controls="second-tab" id="tab-second-tab" class="[&:has(+_.active-tab)]:rounded-br-md [.active-tab_+_&]:rounded-bl-md [.active-tab_+_:after]:rounded-br-md inline-block text-sm px-3.5 py-2 transition-[color] font-[500] relative after:transition-colors after:border-r after:absolute after:left-[unset] after:right-0 after:border-tint after:top-[15%] after:h-[70%] after:w-[1px] last:after:border-transparent text-tint bg-tint-12/1 hover:text-tint-strong truncate max-w-full">Second Tab</button></div><div role="tabpanel" id="arc-4" aria-labelledby="tab-arc-4" class="p-4"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R5mkd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">import torcharc<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">arc = {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'Linear',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'in_features': 8,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'layers': [64, 32],<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'batch_norm': True,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'activation': 'ReLU',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'dropout': 0.2,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'init': {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'normal_',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'std': 0.01,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> },<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">optim_spec = {<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'type': 'Adam',<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> 'lr': 0.001,<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">}<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> </span></span><span class="highlight-line"><span class="highlight-line-content">model = torcharc.build(arc)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">optimizer = torcharc.build_optimizer(optim_spec, model)</span></span></code></pre></div><!--/$--></div></div><div role="tabpanel" id="second-tab" aria-labelledby="tab-second-tab" class="p-4 hidden"><div class="w-full space-y-4"><!--$--><div class="group/codeblock grid grid-flow-col mx-auto w-full decoration-primary/6 max-w-3xl flip-heading-hash"><div class="flex items-center justify-start gap-2 text-sm [grid-area:1/1]"></div><button class="z-[2] mt-2 mr-2 self-start justify-self-end rounded-md bg-transparent p-1 text-tint text-xs leading-none opacity-0 ring-1 ring-tint backdrop-blur-md transition-opacity duration-75 [grid-area:2/1] hover:ring-tint-hover group-hover/codeblock:opacity-[1] print:hidden">Copy</button><pre class="hide-scroll relative overflow-auto bg-tint theme-gradient:bg-tint-12/1 ring-tint-subtle [grid-area:2/1] rounded-md straight-corners:rounded-sm"><code id=":R6mkd9uu8qfkvfa:" class="inline-grid min-w-full grid-cols-[auto_1fr] p-2 [count-reset:line]"><span class="highlight-line"><span class="highlight-line-content">Adam (<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">Parameter Group 0<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> amsgrad: False<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> betas: (0.9, 0.999)<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> eps: 1e-08<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> lr: 0.001<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content"> weight_decay: 0<!-- --> </span></span><span class="highlight-line"><span class="highlight-line-content">)</span></span></code></pre></div><!--/$--></div></div></div><!--/$--></div><!--/$--><div class="flex flex-col md:flex-row mt-6 gap-2 max-w-3xl mx-auto page-api-block:ml-0 text-tint"><a class="group text-sm p-2.5 flex gap-4 flex-1 flex-row-reverse items-center pl-4 border border-tint-subtle rounded straight-corners:rounded-none hover:border-primary text-pretty md:p-4 md:text-base" href="/blog/ml/running-wandb-on-kubernetes"><span class="flex flex-col flex-1 text-right"><span class="text-xs">Previous</span><span class="text-tint-strong group-hover:text-primary line-clamp-2">Running WandB on Kubernetes</span></span><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-left.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon hidden size-4 text-tint-subtle contrast-more:text-tint-strong group-hover:text-primary md:block"></svg></a><a class="group text-sm p-2.5 flex gap-4 flex-1 flex-row items-center pr-4 border border-tint-subtle rounded straight-corners:rounded-none hover:border-primary text-pretty md:p-4 md:text-base" href="/blog/ml/distributed-training-with-torchelastic-on-kubernetes"><span class="flex flex-col flex-1"><span class="text-xs">Next</span><span class="text-tint-strong group-hover:text-primary line-clamp-2">Distributed Training with TorchElastic on Kubernetes</span></span><svg style="mask-image:url(https://ka-p.fontawesome.com/releases/v6.6.0/svgs/regular/chevron-right.svg?v=2&token=a463935e93);mask-repeat:no-repeat;mask-position:center" class="gb-icon hidden size-4 text-tint-subtle contrast-more:text-tint-strong group-hover:text-primary md:block"></svg></a></div><div class="mx-auto mt-6 page-api-block:ml-0 flex max-w-3xl flex-row flex-wrap items-center gap-4 text-tint contrast-more:text-tint-strong"><p class="mr-auto text-sm">Last updated <time data-visual-test="transparent" dateTime="2022-09-27T13:42:06.000Z" title="9/27/2022, 1:42:06 PM">2 years ago</time></p><div class="flex flex-col gap-3 text-sm xl:hidden"><div class="flex flex-wrap items-center gap-2"><p>Was this helpful?</p><div class="rounded-full border border-tint-subtle bg-tint-base contrast-more:border-tint-12"><div class="flex"><button class="p-2 first:rounded-l-full first:pl-2.5 last:rounded-r-full last:pr-2.5 hover:bg-primary-hover hover:text-primary-strong disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit ring-tint contrast-more:hover:ring-1 disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="No" title="No"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.66782 13.3737C4.87421 13.5572 5.19025 13.5386 5.3737 13.3322C7.30371 11.1609 10.6963 11.1609 12.6263 13.3322C12.8098 13.5386 13.1258 13.5572 13.3322 13.3737C13.5386 13.1902 13.5572 12.8742 13.3737 12.6678C11.0459 10.049 6.9541 10.049 4.6263 12.6678C4.44284 12.8742 4.46143 13.1902 4.66782 13.3737ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button><button class="p-2 first:rounded-l-full first:pl-2.5 last:rounded-r-full last:pr-2.5 hover:bg-primary-hover hover:text-primary-strong disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit ring-tint contrast-more:hover:ring-1 disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="Not sure" title="Not sure"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.5 12C4.5 11.7239 4.72386 11.5 5 11.5H13C13.2761 11.5 13.5 11.7239 13.5 12C13.5 12.2761 13.2761 12.5 13 12.5H5C4.72386 12.5 4.5 12.2761 4.5 12ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button><button class="p-2 first:rounded-l-full first:pl-2.5 last:rounded-r-full last:pr-2.5 hover:bg-primary-hover hover:text-primary-strong disabled:cursor-not-allowed disabled:hover:bg-inherit disabled:hover:text-inherit disabled:dark:hover:text-inherit ring-tint contrast-more:hover:ring-1 disabled:opacity-7 disabled:contrast-more:ring-0" type="button" aria-label="Yes, it was!" title="Yes, it was!"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9" cy="9" r="9" fill="currentColor" fill-opacity="0.2"></circle><path fill-rule="evenodd" clip-rule="evenodd" d="M5 8.25C4.58579 8.25 4.25 7.91421 4.25 7.5V6C4.25 5.58579 4.58579 5.25 5 5.25C5.41421 5.25 5.75 5.58579 5.75 6V7.5C5.75 7.91421 5.41421 8.25 5 8.25ZM4.66782 11.6263C4.87421 11.4428 5.19025 11.4614 5.3737 11.6678C7.30371 13.8391 10.6963 13.8391 12.6263 11.6678C12.8098 11.4614 13.1258 11.4428 13.3322 11.6263C13.5386 11.8098 13.5572 12.1258 13.3737 12.3322C11.0459 14.951 6.9541 14.951 4.6263 12.3322C4.44284 12.1258 4.46143 11.8098 4.66782 11.6263ZM12.25 7.5C12.25 7.91421 12.5858 8.25 13 8.25C13.4142 8.25 13.75 7.91421 13.75 7.5V6C13.75 5.58579 13.4142 5.25 13 5.25C12.5858 5.25 12.25 5.58579 12.25 6V7.5Z" fill="currentColor"></path></svg></button></div></div></div></div></div></main></div><!--$--><!--/$--></div><script>$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("B:0","S:0")</script></body></html>