topologies 0.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1725) hide show
  1. topologies/.training-generated-manifest.json +35 -0
  2. topologies/.training-materialized-manifest.json +35 -0
  3. topologies/__init__.py +89 -0
  4. topologies/_catalog.py +293 -0
  5. topologies/_compat.py +27 -0
  6. topologies/_execution.py +178 -0
  7. topologies/_util/__init__.py +1 -0
  8. topologies/_util/fs.py +98 -0
  9. topologies/_util/jsonsafe.py +42 -0
  10. topologies/_util/seed.py +19 -0
  11. topologies/_util/suggest.py +26 -0
  12. topologies/analysis/__init__.py +102 -0
  13. topologies/analysis/core.py +448 -0
  14. topologies/analysis/decode.py +186 -0
  15. topologies/analysis/engineering.py +878 -0
  16. topologies/analysis/integrations.py +70 -0
  17. topologies/analysis/profiling.py +122 -0
  18. topologies/analysis/records.py +123 -0
  19. topologies/analysis/statistics.py +211 -0
  20. topologies/analysis/visualization.py +135 -0
  21. topologies/artifact_store/__init__.py +31 -0
  22. topologies/artifact_store/client.py +402 -0
  23. topologies/artifact_store/exceptions.py +21 -0
  24. topologies/build/__init__.py +93 -0
  25. topologies/build/api.py +111 -0
  26. topologies/build/audit.py +103 -0
  27. topologies/build/budget.py +212 -0
  28. topologies/build/catalog.py +202 -0
  29. topologies/build/config.py +246 -0
  30. topologies/build/contract.py +85 -0
  31. topologies/build/params.py +92 -0
  32. topologies/build/presets.py +100 -0
  33. topologies/build/validation.py +75 -0
  34. topologies/catalog/losses/a2c.json +1 -0
  35. topologies/catalog/losses/adversarial-hinge.json +9 -0
  36. topologies/catalog/losses/binary-cross-entropy-logits.json +1 -0
  37. topologies/catalog/losses/bpr.json +9 -0
  38. topologies/catalog/losses/cross-entropy.json +1 -0
  39. topologies/catalog/losses/ctc.json +9 -0
  40. topologies/catalog/losses/density-nll.json +9 -0
  41. topologies/catalog/losses/dice.json +1 -0
  42. topologies/catalog/losses/gaussian-kl.json +1 -0
  43. topologies/catalog/losses/gaussian-nll.json +9 -0
  44. topologies/catalog/losses/generalized-iou.json +10 -0
  45. topologies/catalog/losses/huber.json +1 -0
  46. topologies/catalog/losses/info-nce.json +9 -0
  47. topologies/catalog/losses/mean-absolute-error.json +1 -0
  48. topologies/catalog/losses/mean-squared-error.json +1 -0
  49. topologies/catalog/losses/multi-resolution-stft.json +9 -0
  50. topologies/catalog/losses/pinball.json +9 -0
  51. topologies/catalog/losses/poly1-loss.json +1 -0
  52. topologies/catalog/losses/si-sdr.json +9 -0
  53. topologies/catalog/losses/sigmoid-focal.json +9 -0
  54. topologies/catalog/losses/smooth-l1.json +9 -0
  55. topologies/catalog/losses/softmax-focal.json +9 -0
  56. topologies/catalog/losses/triplet-margin.json +9 -0
  57. topologies/catalog/optimizers/adabelief.json +1 -0
  58. topologies/catalog/optimizers/adafactor.json +1 -0
  59. topologies/catalog/optimizers/adagrad.json +9 -0
  60. topologies/catalog/optimizers/adahessian.json +1 -0
  61. topologies/catalog/optimizers/adam-8bit.json +1 -0
  62. topologies/catalog/optimizers/adam-mini.json +1 -0
  63. topologies/catalog/optimizers/adam.json +1 -0
  64. topologies/catalog/optimizers/adamw.json +1 -0
  65. topologies/catalog/optimizers/ademamix.json +1 -0
  66. topologies/catalog/optimizers/asam.json +1 -0
  67. topologies/catalog/optimizers/ema.json +1 -0
  68. topologies/catalog/optimizers/fadam.json +1 -0
  69. topologies/catalog/optimizers/fisher-sam.json +1 -0
  70. topologies/catalog/optimizers/flora.json +1 -0
  71. topologies/catalog/optimizers/galore.json +1 -0
  72. topologies/catalog/optimizers/grokfast.json +1 -0
  73. topologies/catalog/optimizers/gsam.json +1 -0
  74. topologies/catalog/optimizers/kfac.json +1 -0
  75. topologies/catalog/optimizers/lamb.json +1 -0
  76. topologies/catalog/optimizers/lars.json +1 -0
  77. topologies/catalog/optimizers/lion.json +1 -0
  78. topologies/catalog/optimizers/lookahead.json +1 -0
  79. topologies/catalog/optimizers/model-soup.json +1 -0
  80. topologies/catalog/optimizers/muon.json +1 -0
  81. topologies/catalog/optimizers/novograd.json +1 -0
  82. topologies/catalog/optimizers/polynomial-decay.json +1 -0
  83. topologies/catalog/optimizers/qlora.json +1 -0
  84. topologies/catalog/optimizers/radam.json +1 -0
  85. topologies/catalog/optimizers/relora.json +1 -0
  86. topologies/catalog/optimizers/rmsprop.json +9 -0
  87. topologies/catalog/optimizers/sam.json +1 -0
  88. topologies/catalog/optimizers/schedule-free.json +1 -0
  89. topologies/catalog/optimizers/sgd.json +1 -0
  90. topologies/catalog/optimizers/shampoo.json +1 -0
  91. topologies/catalog/optimizers/sm3.json +1 -0
  92. topologies/catalog/optimizers/soap.json +1 -0
  93. topologies/catalog/optimizers/sophia.json +1 -0
  94. topologies/catalog/optimizers/swa.json +1 -0
  95. topologies/catalog/optimizers/swad.json +1 -0
  96. topologies/catalog/optimizers/swalp.json +1 -0
  97. topologies/catalog/optimizers/twa.json +1 -0
  98. topologies/catalog/schedulers/clr.json +1 -0
  99. topologies/catalog/schedulers/cooldown.json +1 -0
  100. topologies/catalog/schedulers/cosine-min.json +1 -0
  101. topologies/catalog/schedulers/cosine-restarts.json +1 -0
  102. topologies/catalog/schedulers/exponential.json +19 -0
  103. topologies/catalog/schedulers/grafted.json +1 -0
  104. topologies/catalog/schedulers/multistep.json +1 -0
  105. topologies/catalog/schedulers/noam.json +21 -0
  106. topologies/catalog/schedulers/onecycle.json +1 -0
  107. topologies/catalog/schedulers/reduce-on-plateau.json +1 -0
  108. topologies/catalog/schedulers/sgdr.json +1 -0
  109. topologies/catalog/schedulers/trapezoidal.json +21 -0
  110. topologies/catalog/schedulers/warmup-linear.json +1 -0
  111. topologies/catalog/schedulers/wsd.json +1 -0
  112. topologies/catalog/stability/activation-offload.json +1 -0
  113. topologies/catalog/stability/bf16-recipe.json +14 -0
  114. topologies/catalog/stability/compile-parity.json +4 -0
  115. topologies/catalog/stability/fsdp-wrap.json +17 -0
  116. topologies/catalog/stability/grad-checkpoint.json +1 -0
  117. topologies/catalog/stability/grad-clip.json +17 -0
  118. topologies/catalog/stability/llrd.json +18 -0
  119. topologies/catalog/stability/loss-scale.json +17 -0
  120. topologies/catalog/stability/nan-skip.json +1 -0
  121. topologies/catalog/stability/zero-partition.json +1 -0
  122. topologies/cli.py +294 -0
  123. topologies/data/__init__.py +85 -0
  124. topologies/data/adapters.py +162 -0
  125. topologies/data/collate.py +96 -0
  126. topologies/data/corpus.py +263 -0
  127. topologies/data/datasets.py +53 -0
  128. topologies/data/download.py +204 -0
  129. topologies/data/event_codec.py +62 -0
  130. topologies/data/integrations/__init__.py +24 -0
  131. topologies/data/integrations/karate.py +68 -0
  132. topologies/data/integrations/local.py +345 -0
  133. topologies/data/loaders.py +71 -0
  134. topologies/data/preprocessing.py +188 -0
  135. topologies/data/profiling.py +341 -0
  136. topologies/data/samplers.py +32 -0
  137. topologies/data/splits.py +158 -0
  138. topologies/data/stream.py +313 -0
  139. topologies/data/text.py +212 -0
  140. topologies/data/windows.py +90 -0
  141. topologies/datasets/.dataset-catalog-generated-manifest.json +6 -0
  142. topologies/datasets/__init__.py +25 -0
  143. topologies/datasets/api.py +101 -0
  144. topologies/datasets/artifacts.lock.json +5332 -0
  145. topologies/datasets/catalog.json +17755 -0
  146. topologies/datasets/core.py +511 -0
  147. topologies/datasets/integrations/.dataset-generated-manifest.json +21 -0
  148. topologies/datasets/integrations/__init__.py +1 -0
  149. topologies/datasets/integrations/ag_news/__init__.py +22 -0
  150. topologies/datasets/integrations/cifar10/__init__.py +55 -0
  151. topologies/datasets/integrations/cora/__init__.py +36 -0
  152. topologies/datasets/integrations/fashion_mnist/__init__.py +18 -0
  153. topologies/datasets/integrations/fsdd/__init__.py +54 -0
  154. topologies/datasets/integrations/iris/__init__.py +80 -0
  155. topologies/datasets/integrations/jena_climate/__init__.py +59 -0
  156. topologies/datasets/integrations/mnist/__init__.py +18 -0
  157. topologies/datasets/integrations/movielens_100k/__init__.py +43 -0
  158. topologies/datasets/integrations/oxford_iiit_pet/__init__.py +52 -0
  159. topologies/datasets/integrations/palmer_penguins/__init__.py +46 -0
  160. topologies/datasets/integrations/penn_fudan_pedestrians/__init__.py +52 -0
  161. topologies/datasets/integrations/speech_commands/__init__.py +41 -0
  162. topologies/datasets/integrations/uci_har/__init__.py +27 -0
  163. topologies/datasets/integrations/wikitext_2_raw/__init__.py +44 -0
  164. topologies/datasets/records/1000-genomes.json +13 -0
  165. topologies/datasets/records/2wikimultihopqa.json +12 -0
  166. topologies/datasets/records/3dpw.json +12 -0
  167. topologies/datasets/records/abo.json +12 -0
  168. topologies/datasets/records/acdc.json +13 -0
  169. topologies/datasets/records/activitynet-captions.json +13 -0
  170. topologies/datasets/records/activitynet.json +12 -0
  171. topologies/datasets/records/ade20k.json +13 -0
  172. topologies/datasets/records/adni.json +13 -0
  173. topologies/datasets/records/adroit.json +13 -0
  174. topologies/datasets/records/adult.json +13 -0
  175. topologies/datasets/records/aerorit.json +13 -0
  176. topologies/datasets/records/agora.json +12 -0
  177. topologies/datasets/records/aishell.json +12 -0
  178. topologies/datasets/records/ali-ccp.json +17 -0
  179. topologies/datasets/records/alimama.json +13 -0
  180. topologies/datasets/records/alpaca.json +13 -0
  181. topologies/datasets/records/amass.json +13 -0
  182. topologies/datasets/records/amazon-2018.json +13 -0
  183. topologies/datasets/records/amazon-2023.json +13 -0
  184. topologies/datasets/records/amazon-computers.json +13 -0
  185. topologies/datasets/records/ami.json +13 -0
  186. topologies/datasets/records/amos.json +13 -0
  187. topologies/datasets/records/amos22.json +13 -0
  188. topologies/datasets/records/anli.json +12 -0
  189. topologies/datasets/records/anuraset.json +13 -0
  190. topologies/datasets/records/apps.json +12 -0
  191. topologies/datasets/records/aptos.json +13 -0
  192. topologies/datasets/records/arc.json +13 -0
  193. topologies/datasets/records/argoverse-2.json +13 -0
  194. topologies/datasets/records/arkit-scenes.json +12 -0
  195. topologies/datasets/records/arxiv-pubmed-sum.json +12 -0
  196. topologies/datasets/records/ashrae-gepiii.json +13 -0
  197. topologies/datasets/records/asvspoof-2019.json +13 -0
  198. topologies/datasets/records/atari-100k.json +13 -0
  199. topologies/datasets/records/audiocaps.json +13 -0
  200. topologies/datasets/records/audioset.json +13 -0
  201. topologies/datasets/records/ava.json +13 -0
  202. topologies/datasets/records/avazu.json +13 -0
  203. topologies/datasets/records/avenue.json +13 -0
  204. topologies/datasets/records/babyai.json +13 -0
  205. topologies/datasets/records/bach.json +13 -0
  206. topologies/datasets/records/bank-marketing.json +13 -0
  207. topologies/datasets/records/bbbc.json +13 -0
  208. topologies/datasets/records/bbh.json +13 -0
  209. topologies/datasets/records/bbq.json +12 -0
  210. topologies/datasets/records/bdd100k.json +12 -0
  211. topologies/datasets/records/beans.json +13 -0
  212. topologies/datasets/records/bigearthnet.json +13 -0
  213. topologies/datasets/records/bijie.json +13 -0
  214. topologies/datasets/records/billion-word.json +12 -0
  215. topologies/datasets/records/bindingdb.json +13 -0
  216. topologies/datasets/records/birdclef.json +13 -0
  217. topologies/datasets/records/birdset.json +13 -0
  218. topologies/datasets/records/ble-aoa.json +13 -0
  219. topologies/datasets/records/blendedmvs.json +12 -0
  220. topologies/datasets/records/bobsl.json +13 -0
  221. topologies/datasets/records/book-crossing.json +12 -0
  222. topologies/datasets/records/brats.json +13 -0
  223. topologies/datasets/records/breakhis.json +13 -0
  224. topologies/datasets/records/btad.json +13 -0
  225. topologies/datasets/records/btcv.json +13 -0
  226. topologies/datasets/records/c4.json +13 -0
  227. topologies/datasets/records/california-housing.json +12 -0
  228. topologies/datasets/records/caltech-101.json +12 -0
  229. topologies/datasets/records/camelyon-16.json +13 -0
  230. topologies/datasets/records/camelyon-17.json +13 -0
  231. topologies/datasets/records/camelyon.json +13 -0
  232. topologies/datasets/records/camus.json +13 -0
  233. topologies/datasets/records/camvid.json +12 -0
  234. topologies/datasets/records/caselaw-hold.json +13 -0
  235. topologies/datasets/records/casia-splicing.json +13 -0
  236. topologies/datasets/records/casia-v2.json +13 -0
  237. topologies/datasets/records/casia-webface.json +12 -0
  238. topologies/datasets/records/cassava-leaf.json +13 -0
  239. topologies/datasets/records/cassava.json +13 -0
  240. topologies/datasets/records/cc3m.json +13 -0
  241. topologies/datasets/records/ccmatrix.json +12 -0
  242. topologies/datasets/records/ccpg.json +13 -0
  243. topologies/datasets/records/celeba-spurious.json +13 -0
  244. topologies/datasets/records/celeba.json +12 -0
  245. topologies/datasets/records/census.json +13 -0
  246. topologies/datasets/records/chaos.json +13 -0
  247. topologies/datasets/records/charades.json +12 -0
  248. topologies/datasets/records/chembl-33.json +13 -0
  249. topologies/datasets/records/chestxray14.json +13 -0
  250. topologies/datasets/records/chexpert.json +11 -0
  251. topologies/datasets/records/chime-4.json +13 -0
  252. topologies/datasets/records/chime-6.json +13 -0
  253. topologies/datasets/records/chime-frb.json +13 -0
  254. topologies/datasets/records/cholec-t50.json +13 -0
  255. topologies/datasets/records/cholec80.json +13 -0
  256. topologies/datasets/records/cholecseg8k.json +13 -0
  257. topologies/datasets/records/cifar-10.1.json +12 -0
  258. topologies/datasets/records/cifar-100.json +13 -0
  259. topologies/datasets/records/cinic-10.json +13 -0
  260. topologies/datasets/records/citeseer.json +13 -0
  261. topologies/datasets/records/cityscapes.json +13 -0
  262. topologies/datasets/records/climsim.json +13 -0
  263. topologies/datasets/records/clotho.json +13 -0
  264. topologies/datasets/records/cmapss.json +13 -0
  265. topologies/datasets/records/cnn-dailymail.json +13 -0
  266. topologies/datasets/records/co3d.json +12 -0
  267. topologies/datasets/records/coauthor-cs.json +12 -0
  268. topologies/datasets/records/coco-2017.json +13 -0
  269. topologies/datasets/records/coco-captions.json +13 -0
  270. topologies/datasets/records/coco-pose.json +13 -0
  271. topologies/datasets/records/codecontests.json +12 -0
  272. topologies/datasets/records/codex.json +13 -0
  273. topologies/datasets/records/common-voice.json +13 -0
  274. topologies/datasets/records/compas.json +13 -0
  275. topologies/datasets/records/compcars.json +12 -0
  276. topologies/datasets/records/conceptual-12m.json +13 -0
  277. topologies/datasets/records/coqa.json +13 -0
  278. topologies/datasets/records/cora.json +13 -0
  279. topologies/datasets/records/cord.json +13 -0
  280. topologies/datasets/records/covertype.json +13 -0
  281. topologies/datasets/records/coyo-700m.json +13 -0
  282. topologies/datasets/records/crafter.json +13 -0
  283. topologies/datasets/records/crema-d.json +12 -0
  284. topologies/datasets/records/cremi.json +13 -0
  285. topologies/datasets/records/criteo.json +13 -0
  286. topologies/datasets/records/crowdhuman.json +12 -0
  287. topologies/datasets/records/crowdpose.json +12 -0
  288. topologies/datasets/records/csl-daily.json +13 -0
  289. topologies/datasets/records/ctw1500.json +13 -0
  290. topologies/datasets/records/cuad.json +13 -0
  291. topologies/datasets/records/cub-200.json +13 -0
  292. topologies/datasets/records/cuhk03.json +12 -0
  293. topologies/datasets/records/cwru.json +13 -0
  294. topologies/datasets/records/d4rl.json +13 -0
  295. topologies/datasets/records/dagm.json +13 -0
  296. topologies/datasets/records/dailydialog.json +13 -0
  297. topologies/datasets/records/dancetrack.json +13 -0
  298. topologies/datasets/records/datacomp-1b.json +13 -0
  299. topologies/datasets/records/davis.json +13 -0
  300. topologies/datasets/records/dcase.json +13 -0
  301. topologies/datasets/records/dclde.json +13 -0
  302. topologies/datasets/records/deeperforensics.json +13 -0
  303. topologies/datasets/records/deepglobe.json +13 -0
  304. topologies/datasets/records/deeppcb.json +13 -0
  305. topologies/datasets/records/didemo.json +13 -0
  306. topologies/datasets/records/diii-d.json +13 -0
  307. topologies/datasets/records/dmc.json +13 -0
  308. topologies/datasets/records/dns-challenge.json +13 -0
  309. topologies/datasets/records/docvqa.json +13 -0
  310. topologies/datasets/records/dolly.json +13 -0
  311. topologies/datasets/records/dolma.json +13 -0
  312. topologies/datasets/records/domainnet.json +13 -0
  313. topologies/datasets/records/dota.json +13 -0
  314. topologies/datasets/records/drop.json +12 -0
  315. topologies/datasets/records/ds-1000.json +12 -0
  316. topologies/datasets/records/dsb-2018.json +13 -0
  317. topologies/datasets/records/dsec-flow.json +13 -0
  318. topologies/datasets/records/dtd.json +13 -0
  319. topologies/datasets/records/duacs-aviso.json +13 -0
  320. topologies/datasets/records/duacs.json +13 -0
  321. topologies/datasets/records/dud-e.json +13 -0
  322. topologies/datasets/records/dude.json +13 -0
  323. topologies/datasets/records/dvs-cifar10.json +13 -0
  324. topologies/datasets/records/dvs-gesture.json +13 -0
  325. topologies/datasets/records/dycheck.json +13 -0
  326. topologies/datasets/records/earnings-22.json +12 -0
  327. topologies/datasets/records/ego4d.json +12 -0
  328. topologies/datasets/records/eicu-crd.json +13 -0
  329. topologies/datasets/records/electricity.json +13 -0
  330. topologies/datasets/records/elliptic.json +12 -0
  331. topologies/datasets/records/elpv.json +13 -0
  332. topologies/datasets/records/emnist.json +13 -0
  333. topologies/datasets/records/endovis.json +13 -0
  334. topologies/datasets/records/enose.json +13 -0
  335. topologies/datasets/records/epic-kitchens-100.json +12 -0
  336. topologies/datasets/records/epinions.json +13 -0
  337. topologies/datasets/records/eqa.json +13 -0
  338. topologies/datasets/records/era5.json +13 -0
  339. topologies/datasets/records/esc-50.json +13 -0
  340. topologies/datasets/records/esd.json +12 -0
  341. topologies/datasets/records/eth3d.json +13 -0
  342. topologies/datasets/records/ett.json +13 -0
  343. topologies/datasets/records/europarl.json +12 -0
  344. topologies/datasets/records/eurosat.json +13 -0
  345. topologies/datasets/records/exchange.json +13 -0
  346. topologies/datasets/records/extrasensory.json +13 -0
  347. topologies/datasets/records/fair1m.json +13 -0
  348. topologies/datasets/records/fashioniq.json +13 -0
  349. topologies/datasets/records/fedscale.json +13 -0
  350. topologies/datasets/records/femto-pronostia.json +13 -0
  351. topologies/datasets/records/fever.json +12 -0
  352. topologies/datasets/records/ffhq.json +12 -0
  353. topologies/datasets/records/fgvc-aircraft.json +13 -0
  354. topologies/datasets/records/fineweb-edu.json +13 -0
  355. topologies/datasets/records/fineweb.json +13 -0
  356. topologies/datasets/records/fintabnet.json +13 -0
  357. topologies/datasets/records/fiqa-2018.json +13 -0
  358. topologies/datasets/records/flan.json +12 -0
  359. topologies/datasets/records/flchain.json +13 -0
  360. topologies/datasets/records/fleurs.json +12 -0
  361. topologies/datasets/records/flickr30k-entities.json +12 -0
  362. topologies/datasets/records/flickr30k.json +13 -0
  363. topologies/datasets/records/floodnet.json +13 -0
  364. topologies/datasets/records/flores-200.json +13 -0
  365. topologies/datasets/records/flyingchairs.json +13 -0
  366. topologies/datasets/records/fma.json +13 -0
  367. topologies/datasets/records/fmd.json +12 -0
  368. topologies/datasets/records/fmow.json +13 -0
  369. topologies/datasets/records/food-101.json +13 -0
  370. topologies/datasets/records/forgerynet.json +13 -0
  371. topologies/datasets/records/foursquare.json +13 -0
  372. topologies/datasets/records/franka-kitchen.json +13 -0
  373. topologies/datasets/records/fraud-ieee.json +13 -0
  374. topologies/datasets/records/freihand.json +12 -0
  375. topologies/datasets/records/fsd50k.json +12 -0
  376. topologies/datasets/records/fsdnoisy18k.json +12 -0
  377. topologies/datasets/records/funsd.json +13 -0
  378. topologies/datasets/records/gages-ii.json +13 -0
  379. topologies/datasets/records/gait3d.json +13 -0
  380. topologies/datasets/records/gbsg2.json +13 -0
  381. topologies/datasets/records/gefcom2014.json +13 -0
  382. topologies/datasets/records/gelsight-wedge.json +13 -0
  383. topologies/datasets/records/german-credit.json +13 -0
  384. topologies/datasets/records/gigaspeech.json +13 -0
  385. topologies/datasets/records/gigaword.json +12 -0
  386. topologies/datasets/records/glue.json +13 -0
  387. topologies/datasets/records/goodreads.json +13 -0
  388. topologies/datasets/records/got-10k.json +13 -0
  389. topologies/datasets/records/gowalla.json +13 -0
  390. topologies/datasets/records/gqa.json +13 -0
  391. topologies/datasets/records/grew.json +13 -0
  392. topologies/datasets/records/grf.json +13 -0
  393. topologies/datasets/records/gsm8k.json +13 -0
  394. topologies/datasets/records/gtzan.json +13 -0
  395. topologies/datasets/records/gwosc.json +13 -0
  396. topologies/datasets/records/hacs.json +12 -0
  397. topologies/datasets/records/hellaswag.json +13 -0
  398. topologies/datasets/records/hepmass.json +13 -0
  399. topologies/datasets/records/hgb.json +12 -0
  400. topologies/datasets/records/higgs.json +13 -0
  401. topologies/datasets/records/hirid.json +13 -0
  402. topologies/datasets/records/hm3d.json +12 -0
  403. topologies/datasets/records/hmdb51.json +13 -0
  404. topologies/datasets/records/home-credit-default-risk.json +13 -0
  405. topologies/datasets/records/hotpotqa.json +12 -0
  406. topologies/datasets/records/house-prices.json +13 -0
  407. topologies/datasets/records/howto100m.json +13 -0
  408. topologies/datasets/records/htru2.json +13 -0
  409. topologies/datasets/records/human36m.json +13 -0
  410. topologies/datasets/records/humaneval.json +13 -0
  411. topologies/datasets/records/iam.json +13 -0
  412. topologies/datasets/records/icdar15.json +13 -0
  413. topologies/datasets/records/icdar2017-mlt.json +13 -0
  414. topologies/datasets/records/idrid.json +13 -0
  415. topologies/datasets/records/iemocap.json +12 -0
  416. topologies/datasets/records/ifeval.json +12 -0
  417. topologies/datasets/records/ili.json +13 -0
  418. topologies/datasets/records/imagenet-1k.json +13 -0
  419. topologies/datasets/records/imagenet-21k.json +13 -0
  420. topologies/datasets/records/imagenet-9.json +12 -0
  421. topologies/datasets/records/imagenet-o.json +13 -0
  422. topologies/datasets/records/imagenet-p.json +13 -0
  423. topologies/datasets/records/imagenet-real.json +12 -0
  424. topologies/datasets/records/imagenet-v2.json +13 -0
  425. topologies/datasets/records/imdb.json +13 -0
  426. topologies/datasets/records/inaturalist-2017.json +13 -0
  427. topologies/datasets/records/inaturalist-2021.json +13 -0
  428. topologies/datasets/records/inria-aerial.json +13 -0
  429. topologies/datasets/records/ipinyou.json +13 -0
  430. topologies/datasets/records/isic.json +13 -0
  431. topologies/datasets/records/isles-2022.json +13 -0
  432. topologies/datasets/records/isprs-potsdam.json +13 -0
  433. topologies/datasets/records/iwslt.json +13 -0
  434. topologies/datasets/records/jarvis-dft.json +13 -0
  435. topologies/datasets/records/jester.json +12 -0
  436. topologies/datasets/records/jigsaw-toxic.json +12 -0
  437. topologies/datasets/records/jigsaws.json +13 -0
  438. topologies/datasets/records/jvs.json +12 -0
  439. topologies/datasets/records/kermany-oct.json +13 -0
  440. topologies/datasets/records/kilt.json +12 -0
  441. topologies/datasets/records/kinetics-400.json +13 -0
  442. topologies/datasets/records/kinetics-600.json +13 -0
  443. topologies/datasets/records/kinetics-700.json +13 -0
  444. topologies/datasets/records/kits.json +13 -0
  445. topologies/datasets/records/kitti.json +13 -0
  446. topologies/datasets/records/kkbox-wsdm-cup.json +13 -0
  447. topologies/datasets/records/kmnist.json +12 -0
  448. topologies/datasets/records/ksponspeech.json +12 -0
  449. topologies/datasets/records/kuairec.json +13 -0
  450. topologies/datasets/records/kuaisar.json +13 -0
  451. topologies/datasets/records/kvasir-seg.json +13 -0
  452. topologies/datasets/records/laion-2b.json +13 -0
  453. topologies/datasets/records/laion-400m.json +13 -0
  454. topologies/datasets/records/lakh-midi.json +12 -0
  455. topologies/datasets/records/landslide4sense.json +13 -0
  456. topologies/datasets/records/largest.json +13 -0
  457. topologies/datasets/records/lasot.json +13 -0
  458. topologies/datasets/records/lastfm-1k.json +13 -0
  459. topologies/datasets/records/leaf.json +13 -0
  460. topologies/datasets/records/levir-cd.json +13 -0
  461. topologies/datasets/records/lfm-360k.json +13 -0
  462. topologies/datasets/records/lfw.json +12 -0
  463. topologies/datasets/records/libero.json +13 -0
  464. topologies/datasets/records/libri-light.json +13 -0
  465. topologies/datasets/records/librimix.json +13 -0
  466. topologies/datasets/records/librispeech.json +13 -0
  467. topologies/datasets/records/libritts.json +13 -0
  468. topologies/datasets/records/lidc-idri.json +13 -0
  469. topologies/datasets/records/lits.json +13 -0
  470. topologies/datasets/records/livecodebench.json +12 -0
  471. topologies/datasets/records/ljspeech.json +13 -0
  472. topologies/datasets/records/llava-instruct-150k.json +13 -0
  473. topologies/datasets/records/longbench.json +12 -0
  474. topologies/datasets/records/lsst-alert.json +13 -0
  475. topologies/datasets/records/luna16.json +13 -0
  476. topologies/datasets/records/lvis.json +13 -0
  477. topologies/datasets/records/lvos.json +12 -0
  478. topologies/datasets/records/m4.json +13 -0
  479. topologies/datasets/records/m5.json +13 -0
  480. topologies/datasets/records/maestro.json +13 -0
  481. topologies/datasets/records/magnatagatune.json +13 -0
  482. topologies/datasets/records/mapillary-vistas.json +13 -0
  483. topologies/datasets/records/market-1501.json +12 -0
  484. topologies/datasets/records/matbench.json +13 -0
  485. topologies/datasets/records/materials-project.json +13 -0
  486. topologies/datasets/records/math.json +13 -0
  487. topologies/datasets/records/mathqa.json +12 -0
  488. topologies/datasets/records/matterport3d.json +12 -0
  489. topologies/datasets/records/mbpp.json +13 -0
  490. topologies/datasets/records/md17.json +13 -0
  491. topologies/datasets/records/medical-segmentation-decathlon.json +13 -0
  492. topologies/datasets/records/medleydb.json +12 -0
  493. topologies/datasets/records/metaworld.json +13 -0
  494. topologies/datasets/records/metr-la.json +12 -0
  495. topologies/datasets/records/mhealth.json +13 -0
  496. topologies/datasets/records/middlebury.json +13 -0
  497. topologies/datasets/records/million-aid.json +13 -0
  498. topologies/datasets/records/mimic-cxr.json +13 -0
  499. topologies/datasets/records/mimic-iii.json +13 -0
  500. topologies/datasets/records/mind.json +13 -0
  501. topologies/datasets/records/minerl-obtaindiamond.json +13 -0
  502. topologies/datasets/records/minigrid.json +13 -0
  503. topologies/datasets/records/mit-bih.json +13 -0
  504. topologies/datasets/records/mit-indoor67.json +12 -0
  505. topologies/datasets/records/mjsynth.json +13 -0
  506. topologies/datasets/records/mls.json +12 -0
  507. topologies/datasets/records/mmlu-pro.json +13 -0
  508. topologies/datasets/records/mmlu.json +13 -0
  509. topologies/datasets/records/mmwave-har.json +13 -0
  510. topologies/datasets/records/modelnet40.json +13 -0
  511. topologies/datasets/records/moisesdb.json +13 -0
  512. topologies/datasets/records/moleculenet-8.json +13 -0
  513. topologies/datasets/records/moments-in-time.json +12 -0
  514. topologies/datasets/records/monash-30.json +13 -0
  515. topologies/datasets/records/monuseg.json +13 -0
  516. topologies/datasets/records/mose.json +12 -0
  517. topologies/datasets/records/mot17.json +13 -0
  518. topologies/datasets/records/mot20.json +13 -0
  519. topologies/datasets/records/movielens-1m.json +13 -0
  520. topologies/datasets/records/movielens-20m.json +13 -0
  521. topologies/datasets/records/movielens-25m.json +12 -0
  522. topologies/datasets/records/mpdd.json +13 -0
  523. topologies/datasets/records/mpi-inf-3dhp.json +12 -0
  524. topologies/datasets/records/mpii.json +13 -0
  525. topologies/datasets/records/ms-asl.json +13 -0
  526. topologies/datasets/records/ms-marco.json +13 -0
  527. topologies/datasets/records/msd.json +13 -0
  528. topologies/datasets/records/msmt17.json +12 -0
  529. topologies/datasets/records/msr-vtt.json +13 -0
  530. topologies/datasets/records/mstar.json +13 -0
  531. topologies/datasets/records/msvd.json +13 -0
  532. topologies/datasets/records/mtbs.json +13 -0
  533. topologies/datasets/records/mteb.json +12 -0
  534. topologies/datasets/records/multi-news.json +12 -0
  535. topologies/datasets/records/mura.json +13 -0
  536. topologies/datasets/records/musdb18-hq.json +13 -0
  537. topologies/datasets/records/musiccaps.json +12 -0
  538. topologies/datasets/records/musicnet.json +12 -0
  539. topologies/datasets/records/mutag.json +13 -0
  540. topologies/datasets/records/mvimgnet.json +12 -0
  541. topologies/datasets/records/mvsec.json +13 -0
  542. topologies/datasets/records/mvtec-ad.json +13 -0
  543. topologies/datasets/records/mvtec-loco.json +13 -0
  544. topologies/datasets/records/mvtec.json +13 -0
  545. topologies/datasets/records/n-caltech101.json +13 -0
  546. topologies/datasets/records/n-cmapss.json +13 -0
  547. topologies/datasets/records/n2c2.json +13 -0
  548. topologies/datasets/records/nab.json +13 -0
  549. topologies/datasets/records/nabirds.json +12 -0
  550. topologies/datasets/records/nas-bench-301.json +13 -0
  551. topologies/datasets/records/natural-questions.json +13 -0
  552. topologies/datasets/records/nct-crc-he.json +13 -0
  553. topologies/datasets/records/nell-995.json +13 -0
  554. topologies/datasets/records/nerf-synthetic.json +12 -0
  555. topologies/datasets/records/netflix-prize.json +12 -0
  556. topologies/datasets/records/nethack.json +13 -0
  557. topologies/datasets/records/neu-det.json +13 -0
  558. topologies/datasets/records/nico.json +13 -0
  559. topologies/datasets/records/nih-14.json +13 -0
  560. topologies/datasets/records/nllb-seed.json +13 -0
  561. topologies/datasets/records/nmnist.json +13 -0
  562. topologies/datasets/records/noaa-oisst.json +13 -0
  563. topologies/datasets/records/nsl-kdd.json +13 -0
  564. topologies/datasets/records/nsynth.json +13 -0
  565. topologies/datasets/records/ntu-rgbd.json +12 -0
  566. topologies/datasets/records/nuscenes.json +13 -0
  567. topologies/datasets/records/nwpu-resisc45.json +13 -0
  568. topologies/datasets/records/nyc-taxi.json +13 -0
  569. topologies/datasets/records/nyu-depth-v2.json +12 -0
  570. topologies/datasets/records/objaverse.json +12 -0
  571. topologies/datasets/records/objectnet.json +12 -0
  572. topologies/datasets/records/objects365.json +13 -0
  573. topologies/datasets/records/oc20.json +13 -0
  574. topologies/datasets/records/oc22.json +13 -0
  575. topologies/datasets/records/octa-500.json +13 -0
  576. topologies/datasets/records/office-home.json +12 -0
  577. topologies/datasets/records/ogbg-molhiv.json +13 -0
  578. topologies/datasets/records/ogbg-pcba.json +13 -0
  579. topologies/datasets/records/ogbg-ppa.json +12 -0
  580. topologies/datasets/records/ogbl-collab.json +13 -0
  581. topologies/datasets/records/ogbl-ddi.json +13 -0
  582. topologies/datasets/records/ogbl-ppa.json +13 -0
  583. topologies/datasets/records/ogbn-arxiv.json +13 -0
  584. topologies/datasets/records/ogbn-mag.json +13 -0
  585. topologies/datasets/records/ogbn-papers100m.json +13 -0
  586. topologies/datasets/records/ogbn-products.json +13 -0
  587. topologies/datasets/records/ogbn-proteins.json +13 -0
  588. topologies/datasets/records/ok-vqa.json +13 -0
  589. topologies/datasets/records/once.json +12 -0
  590. topologies/datasets/records/open-bandit.json +13 -0
  591. topologies/datasets/records/openhermes.json +13 -0
  592. topologies/datasets/records/openimages-v7.json +13 -0
  593. topologies/datasets/records/openmic-2018.json +13 -0
  594. topologies/datasets/records/openml-cc18.json +13 -0
  595. topologies/datasets/records/openwebtext.json +12 -0
  596. topologies/datasets/records/opportunity.json +13 -0
  597. topologies/datasets/records/opus-100.json +13 -0
  598. topologies/datasets/records/oqmd.json +13 -0
  599. topologies/datasets/records/orcadata.json +13 -0
  600. topologies/datasets/records/otb100.json +13 -0
  601. topologies/datasets/records/otto.json +13 -0
  602. topologies/datasets/records/outbrain-click-prediction.json +13 -0
  603. topologies/datasets/records/oxford-flowers-102.json +13 -0
  604. topologies/datasets/records/pacs.json +12 -0
  605. topologies/datasets/records/padchest.json +13 -0
  606. topologies/datasets/records/pamap2.json +13 -0
  607. topologies/datasets/records/pannuke.json +13 -0
  608. topologies/datasets/records/paracrawl.json +12 -0
  609. topologies/datasets/records/pascal-context.json +12 -0
  610. topologies/datasets/records/pascal-voc-07.json +13 -0
  611. topologies/datasets/records/pascal-voc-12.json +13 -0
  612. topologies/datasets/records/pastis.json +13 -0
  613. topologies/datasets/records/pcam.json +13 -0
  614. topologies/datasets/records/pcb-defect.json +13 -0
  615. topologies/datasets/records/pcqm4mv2.json +13 -0
  616. topologies/datasets/records/pdbbind.json +13 -0
  617. topologies/datasets/records/pdebench.json +13 -0
  618. topologies/datasets/records/pems-03.json +13 -0
  619. topologies/datasets/records/pems-04.json +13 -0
  620. topologies/datasets/records/pems-07.json +13 -0
  621. topologies/datasets/records/pems-08.json +13 -0
  622. topologies/datasets/records/pems-bay.json +13 -0
  623. topologies/datasets/records/penn-treebank.json +12 -0
  624. topologies/datasets/records/peoples-speech.json +12 -0
  625. topologies/datasets/records/phakir.json +13 -0
  626. topologies/datasets/records/phm-milling.json +13 -0
  627. topologies/datasets/records/physionet-2012.json +13 -0
  628. topologies/datasets/records/places365.json +13 -0
  629. topologies/datasets/records/plant-pathology-2020.json +13 -0
  630. topologies/datasets/records/plantdoc.json +13 -0
  631. topologies/datasets/records/plantvillage.json +13 -0
  632. topologies/datasets/records/porto-seguro.json +13 -0
  633. topologies/datasets/records/posetrack21.json +12 -0
  634. topologies/datasets/records/potsdam.json +13 -0
  635. topologies/datasets/records/powergridworld.json +13 -0
  636. topologies/datasets/records/ppi.json +12 -0
  637. topologies/datasets/records/procgen.json +13 -0
  638. topologies/datasets/records/prophesee-gen1.json +13 -0
  639. topologies/datasets/records/proteinnet.json +13 -0
  640. topologies/datasets/records/proteins.json +13 -0
  641. topologies/datasets/records/publaynet.json +13 -0
  642. topologies/datasets/records/pubmed.json +13 -0
  643. topologies/datasets/records/pubmedqa.json +12 -0
  644. topologies/datasets/records/pubtabnet.json +13 -0
  645. topologies/datasets/records/pv-el.json +13 -0
  646. topologies/datasets/records/qm7b.json +13 -0
  647. topologies/datasets/records/qm9.json +13 -0
  648. topologies/datasets/records/qmnist.json +12 -0
  649. topologies/datasets/records/race.json +12 -0
  650. topologies/datasets/records/radar-doppler.json +13 -0
  651. topologies/datasets/records/real-toxicity-prompts.json +12 -0
  652. topologies/datasets/records/reddit.json +13 -0
  653. topologies/datasets/records/redpajama-v2.json +13 -0
  654. topologies/datasets/records/ref-youtube-vos.json +12 -0
  655. topologies/datasets/records/refcoco-plus.json +13 -0
  656. topologies/datasets/records/refcoco.json +13 -0
  657. topologies/datasets/records/refcocog.json +13 -0
  658. topologies/datasets/records/replica.json +12 -0
  659. topologies/datasets/records/retailrocket-ctr.json +13 -0
  660. topologies/datasets/records/retailrocket.json +13 -0
  661. topologies/datasets/records/retinal-vessels.json +13 -0
  662. topologies/datasets/records/rl-unplugged.json +13 -0
  663. topologies/datasets/records/rlbench.json +13 -0
  664. topologies/datasets/records/rmd17.json +13 -0
  665. topologies/datasets/records/robomimic.json +13 -0
  666. topologies/datasets/records/rossmann-store-sales.json +13 -0
  667. topologies/datasets/records/rsna-pneumonia.json +13 -0
  668. topologies/datasets/records/rvl-cdip.json +13 -0
  669. topologies/datasets/records/s3dis.json +13 -0
  670. topologies/datasets/records/samsum.json +12 -0
  671. topologies/datasets/records/santander.json +13 -0
  672. topologies/datasets/records/sbu-captions.json +13 -0
  673. topologies/datasets/records/scannet.json +13 -0
  674. topologies/datasets/records/scedc.json +13 -0
  675. topologies/datasets/records/sdss.json +13 -0
  676. topologies/datasets/records/sen12ms.json +13 -0
  677. topologies/datasets/records/shanghaitech.json +13 -0
  678. topologies/datasets/records/shapenet-part.json +13 -0
  679. topologies/datasets/records/shipsear.json +13 -0
  680. topologies/datasets/records/shl.json +13 -0
  681. topologies/datasets/records/siim-acr-pneumothorax.json +13 -0
  682. topologies/datasets/records/sintel.json +13 -0
  683. topologies/datasets/records/sketchy.json +13 -0
  684. topologies/datasets/records/slakh2100.json +12 -0
  685. topologies/datasets/records/sleep-edf.json +13 -0
  686. topologies/datasets/records/slimpajama.json +12 -0
  687. topologies/datasets/records/smac.json +13 -0
  688. topologies/datasets/records/smacv2.json +13 -0
  689. topologies/datasets/records/smap-msl.json +13 -0
  690. topologies/datasets/records/smd.json +13 -0
  691. topologies/datasets/records/sms-wsj.json +12 -0
  692. topologies/datasets/records/snli.json +12 -0
  693. topologies/datasets/records/solar.json +13 -0
  694. topologies/datasets/records/something-something-v2.json +13 -0
  695. topologies/datasets/records/sonyc-ust.json +12 -0
  696. topologies/datasets/records/spacenet.json +13 -0
  697. topologies/datasets/records/spgispeech.json +13 -0
  698. topologies/datasets/records/spotify-mpd.json +13 -0
  699. topologies/datasets/records/spring.json +13 -0
  700. topologies/datasets/records/squad-2.json +13 -0
  701. topologies/datasets/records/squad.json +13 -0
  702. topologies/datasets/records/sroie.json +13 -0
  703. topologies/datasets/records/ssdd.json +13 -0
  704. topologies/datasets/records/stanford-cars.json +13 -0
  705. topologies/datasets/records/stanford-dogs.json +12 -0
  706. topologies/datasets/records/steam.json +13 -0
  707. topologies/datasets/records/stl-10.json +13 -0
  708. topologies/datasets/records/sugarbeets-2016.json +13 -0
  709. topologies/datasets/records/sun-rgbd.json +12 -0
  710. topologies/datasets/records/sun397.json +12 -0
  711. topologies/datasets/records/superglue.json +13 -0
  712. topologies/datasets/records/sustainbench.json +13 -0
  713. topologies/datasets/records/susy.json +13 -0
  714. topologies/datasets/records/svamp.json +12 -0
  715. topologies/datasets/records/svhn.json +13 -0
  716. topologies/datasets/records/swat-wadi.json +13 -0
  717. topologies/datasets/records/switchboard.json +12 -0
  718. topologies/datasets/records/synthia.json +13 -0
  719. topologies/datasets/records/synthtext.json +13 -0
  720. topologies/datasets/records/tabarena.json +12 -0
  721. topologies/datasets/records/tabula-sapiens.json +13 -0
  722. topologies/datasets/records/tao.json +12 -0
  723. topologies/datasets/records/tape.json +13 -0
  724. topologies/datasets/records/tartanair.json +13 -0
  725. topologies/datasets/records/tcga.json +13 -0
  726. topologies/datasets/records/ted2020.json +12 -0
  727. topologies/datasets/records/tedlium-3.json +13 -0
  728. topologies/datasets/records/tenrec.json +13 -0
  729. topologies/datasets/records/terra-incognita.json +12 -0
  730. topologies/datasets/records/tess.json +13 -0
  731. topologies/datasets/records/textvqa.json +13 -0
  732. topologies/datasets/records/tgb.json +12 -0
  733. topologies/datasets/records/the-pile.json +13 -0
  734. topologies/datasets/records/theoremqa.json +12 -0
  735. topologies/datasets/records/things3d.json +13 -0
  736. topologies/datasets/records/timit.json +12 -0
  737. topologies/datasets/records/tiny-imagenet.json +13 -0
  738. topologies/datasets/records/titanic.json +13 -0
  739. topologies/datasets/records/totalsegmentator.json +13 -0
  740. topologies/datasets/records/touch-and-go.json +13 -0
  741. topologies/datasets/records/trackingnet.json +13 -0
  742. topologies/datasets/records/traffic.json +13 -0
  743. topologies/datasets/records/transnas-bench-101.json +13 -0
  744. topologies/datasets/records/triviaqa.json +13 -0
  745. topologies/datasets/records/truthfulqa.json +13 -0
  746. topologies/datasets/records/twitch-gamers.json +12 -0
  747. topologies/datasets/records/tydiqa.json +13 -0
  748. topologies/datasets/records/uav123.json +12 -0
  749. topologies/datasets/records/uc-merced.json +13 -0
  750. topologies/datasets/records/ucf-crime.json +13 -0
  751. topologies/datasets/records/ucf101.json +13 -0
  752. topologies/datasets/records/ucr-anomaly-archive.json +13 -0
  753. topologies/datasets/records/ucr.json +13 -0
  754. topologies/datasets/records/ucsd-ped.json +13 -0
  755. topologies/datasets/records/uea.json +13 -0
  756. topologies/datasets/records/uecfood256.json +13 -0
  757. topologies/datasets/records/ujiindoorloc.json +13 -0
  758. topologies/datasets/records/uk-biobank.json +13 -0
  759. topologies/datasets/records/uk-dale.json +13 -0
  760. topologies/datasets/records/ultrachat.json +12 -0
  761. topologies/datasets/records/ultrafeedback.json +12 -0
  762. topologies/datasets/records/umls.json +13 -0
  763. topologies/datasets/records/un-parallel.json +12 -0
  764. topologies/datasets/records/urbansound8k.json +13 -0
  765. topologies/datasets/records/uwb-nlos.json +13 -0
  766. topologies/datasets/records/vaihingen.json +13 -0
  767. topologies/datasets/records/vctk.json +13 -0
  768. topologies/datasets/records/veri-776.json +12 -0
  769. topologies/datasets/records/vggface2.json +13 -0
  770. topologies/datasets/records/vima.json +13 -0
  771. topologies/datasets/records/visa.json +13 -0
  772. topologies/datasets/records/visda-2017.json +12 -0
  773. topologies/datasets/records/visual-genome.json +13 -0
  774. topologies/datasets/records/voicebank-demand.json +12 -0
  775. topologies/datasets/records/voxceleb-1.json +13 -0
  776. topologies/datasets/records/voxceleb-2.json +13 -0
  777. topologies/datasets/records/voxlingua107.json +12 -0
  778. topologies/datasets/records/voxpopuli.json +13 -0
  779. topologies/datasets/records/vqav2.json +13 -0
  780. topologies/datasets/records/waterbirds.json +13 -0
  781. topologies/datasets/records/wavcaps.json +12 -0
  782. topologies/datasets/records/waymo-open.json +13 -0
  783. topologies/datasets/records/weather.json +13 -0
  784. topologies/datasets/records/weatherbench-2.json +13 -0
  785. topologies/datasets/records/wham.json +13 -0
  786. topologies/datasets/records/whamr.json +13 -0
  787. topologies/datasets/records/whu-hi.json +13 -0
  788. topologies/datasets/records/widar-3.json +13 -0
  789. topologies/datasets/records/widar.json +13 -0
  790. topologies/datasets/records/wider-face.json +12 -0
  791. topologies/datasets/records/wikipedia-web-traffic.json +13 -0
  792. topologies/datasets/records/wikitext-103.json +12 -0
  793. topologies/datasets/records/wilds-fmow.json +13 -0
  794. topologies/datasets/records/wilds-rxrx1.json +13 -0
  795. topologies/datasets/records/wind.json +13 -0
  796. topologies/datasets/records/wisdm.json +13 -0
  797. topologies/datasets/records/wit.json +13 -0
  798. topologies/datasets/records/wmt.json +13 -0
  799. topologies/datasets/records/wsj.json +12 -0
  800. topologies/datasets/records/wsj0-2mix.json +12 -0
  801. topologies/datasets/records/xbd.json +13 -0
  802. topologies/datasets/records/xeno-canto.json +13 -0
  803. topologies/datasets/records/xnli.json +13 -0
  804. topologies/datasets/records/xsum.json +13 -0
  805. topologies/datasets/records/xtreme.json +13 -0
  806. topologies/datasets/records/xview.json +13 -0
  807. topologies/datasets/records/yahoo-s5.json +13 -0
  808. topologies/datasets/records/yelp.json +13 -0
  809. topologies/datasets/records/yfcc100m.json +13 -0
  810. topologies/datasets/records/youtube-vis.json +12 -0
  811. topologies/datasets/records/youtube-vos.json +13 -0
  812. topologies/datasets/records/zinc-12k.json +13 -0
  813. topologies/datasets/records/zinc-250k.json +13 -0
  814. topologies/datasets/records/zinc-full.json +13 -0
  815. topologies/datasets/schema.py +278 -0
  816. topologies/enums.py +80 -0
  817. topologies/evaluation/__init__.py +58 -0
  818. topologies/evaluation/api.py +1162 -0
  819. topologies/evaluation/metrics.py +438 -0
  820. topologies/experiments/__init__.py +181 -0
  821. topologies/experiments/analysis.py +645 -0
  822. topologies/experiments/bench.py +435 -0
  823. topologies/experiments/bench_checks.py +251 -0
  824. topologies/experiments/cache.py +229 -0
  825. topologies/experiments/callbacks.py +163 -0
  826. topologies/experiments/cli.py +528 -0
  827. topologies/experiments/coordinator.py +387 -0
  828. topologies/experiments/core.py +499 -0
  829. topologies/experiments/costs.py +180 -0
  830. topologies/experiments/distributions.py +133 -0
  831. topologies/experiments/errors.py +58 -0
  832. topologies/experiments/insights.py +352 -0
  833. topologies/experiments/metrics.py +134 -0
  834. topologies/experiments/parallel.py +294 -0
  835. topologies/experiments/pipeline.py +592 -0
  836. topologies/experiments/planning.py +289 -0
  837. topologies/experiments/pruners.py +86 -0
  838. topologies/experiments/render/__init__.py +1 -0
  839. topologies/experiments/render/console.py +489 -0
  840. topologies/experiments/render/html.py +512 -0
  841. topologies/experiments/render/live.py +130 -0
  842. topologies/experiments/render/markdown.py +73 -0
  843. topologies/experiments/results.py +694 -0
  844. topologies/experiments/routing.py +510 -0
  845. topologies/experiments/runner.py +233 -0
  846. topologies/experiments/space.py +513 -0
  847. topologies/experiments/spec.py +221 -0
  848. topologies/experiments/stats.py +322 -0
  849. topologies/experiments/store.py +198 -0
  850. topologies/experiments/table.py +134 -0
  851. topologies/experiments/tasks.py +905 -0
  852. topologies/experiments/trial.py +425 -0
  853. topologies/experiments/tui.py +14 -0
  854. topologies/experiments/yaml_spec.py +221 -0
  855. topologies/generation.py +252 -0
  856. topologies/implementations/losses/a2c.py +53 -0
  857. topologies/implementations/losses/poly1_loss.py +43 -0
  858. topologies/implementations/optimizers/adabelief.py +54 -0
  859. topologies/implementations/optimizers/adafactor.py +66 -0
  860. topologies/implementations/optimizers/adahessian.py +76 -0
  861. topologies/implementations/optimizers/adam8bit.py +75 -0
  862. topologies/implementations/optimizers/adam_mini.py +78 -0
  863. topologies/implementations/optimizers/ademamix.py +59 -0
  864. topologies/implementations/optimizers/asam.py +71 -0
  865. topologies/implementations/optimizers/core.py +29 -0
  866. topologies/implementations/optimizers/ema.py +49 -0
  867. topologies/implementations/optimizers/fadam.py +58 -0
  868. topologies/implementations/optimizers/fisher_sam.py +76 -0
  869. topologies/implementations/optimizers/flora.py +41 -0
  870. topologies/implementations/optimizers/galore.py +42 -0
  871. topologies/implementations/optimizers/grokfast.py +46 -0
  872. topologies/implementations/optimizers/gsam.py +67 -0
  873. topologies/implementations/optimizers/kfac.py +43 -0
  874. topologies/implementations/optimizers/lamb.py +63 -0
  875. topologies/implementations/optimizers/lars.py +46 -0
  876. topologies/implementations/optimizers/lion.py +49 -0
  877. topologies/implementations/optimizers/lookahead.py +53 -0
  878. topologies/implementations/optimizers/model_soup.py +50 -0
  879. topologies/implementations/optimizers/muon.py +41 -0
  880. topologies/implementations/optimizers/novograd.py +62 -0
  881. topologies/implementations/optimizers/polynomial_decay.py +52 -0
  882. topologies/implementations/optimizers/qlora.py +18 -0
  883. topologies/implementations/optimizers/radam.py +71 -0
  884. topologies/implementations/optimizers/relora.py +17 -0
  885. topologies/implementations/optimizers/sam.py +78 -0
  886. topologies/implementations/optimizers/schedule_free.py +38 -0
  887. topologies/implementations/optimizers/shampoo.py +60 -0
  888. topologies/implementations/optimizers/sm3.py +44 -0
  889. topologies/implementations/optimizers/soap.py +54 -0
  890. topologies/implementations/optimizers/sophia.py +61 -0
  891. topologies/implementations/optimizers/swa.py +50 -0
  892. topologies/implementations/optimizers/swad.py +52 -0
  893. topologies/implementations/optimizers/swalp.py +43 -0
  894. topologies/implementations/optimizers/twa.py +50 -0
  895. topologies/implementations/schedulers/clr.py +21 -0
  896. topologies/implementations/schedulers/cooldown.py +37 -0
  897. topologies/implementations/schedulers/cosine_min.py +19 -0
  898. topologies/implementations/schedulers/cosine_restarts.py +24 -0
  899. topologies/implementations/schedulers/exponential.py +32 -0
  900. topologies/implementations/schedulers/grafted.py +43 -0
  901. topologies/implementations/schedulers/multistep.py +21 -0
  902. topologies/implementations/schedulers/noam.py +39 -0
  903. topologies/implementations/schedulers/onecycle.py +10 -0
  904. topologies/implementations/schedulers/reduce_on_plateau.py +22 -0
  905. topologies/implementations/schedulers/sgdr.py +24 -0
  906. topologies/implementations/schedulers/trapezoidal.py +42 -0
  907. topologies/implementations/schedulers/warmup_linear.py +32 -0
  908. topologies/implementations/schedulers/wsd.py +46 -0
  909. topologies/implementations/training/core.py +298 -0
  910. topologies/inference.py +88 -0
  911. topologies/inference_tasks/__init__.py +1 -0
  912. topologies/inference_tasks/audio.py +26 -0
  913. topologies/inference_tasks/detection.py +63 -0
  914. topologies/inference_tasks/diffusion.py +114 -0
  915. topologies/inference_tasks/music.py +34 -0
  916. topologies/inference_tasks/retrieval.py +19 -0
  917. topologies/introspection/__init__.py +84 -0
  918. topologies/introspection/_tree.py +111 -0
  919. topologies/introspection/adapters/__init__.py +159 -0
  920. topologies/introspection/adapters/builtins.py +20 -0
  921. topologies/introspection/adapters/diffusion.py +41 -0
  922. topologies/introspection/adapters/generic.py +17 -0
  923. topologies/introspection/adapters/huggingface.py +96 -0
  924. topologies/introspection/adapters/topologies_catalog.py +212 -0
  925. topologies/introspection/adapters/torch_modules.py +34 -0
  926. topologies/introspection/api.py +303 -0
  927. topologies/introspection/capture.py +580 -0
  928. topologies/introspection/cli.py +70 -0
  929. topologies/introspection/collection.py +457 -0
  930. topologies/introspection/errors.py +35 -0
  931. topologies/introspection/functional.py +339 -0
  932. topologies/introspection/hooks.py +262 -0
  933. topologies/introspection/html.py +122 -0
  934. topologies/introspection/inputs.py +180 -0
  935. topologies/introspection/integrations.py +110 -0
  936. topologies/introspection/interventions.py +388 -0
  937. topologies/introspection/objectives.py +261 -0
  938. topologies/introspection/payloads.py +116 -0
  939. topologies/introspection/reducers.py +755 -0
  940. topologies/introspection/report.py +454 -0
  941. topologies/introspection/semantics.py +218 -0
  942. topologies/introspection/session.py +386 -0
  943. topologies/introspection/sites.py +501 -0
  944. topologies/introspection/store.py +148 -0
  945. topologies/introspection/subject.py +236 -0
  946. topologies/introspection/techniques/__init__.py +220 -0
  947. topologies/introspection/techniques/_features.py +109 -0
  948. topologies/introspection/techniques/activations.py +215 -0
  949. topologies/introspection/techniques/anomalies.py +224 -0
  950. topologies/introspection/techniques/attention.py +280 -0
  951. topologies/introspection/techniques/attribution.py +450 -0
  952. topologies/introspection/techniques/dictionary.py +205 -0
  953. topologies/introspection/techniques/geometry.py +124 -0
  954. topologies/introspection/techniques/gradients.py +144 -0
  955. topologies/introspection/techniques/interventions.py +447 -0
  956. topologies/introspection/techniques/lens.py +173 -0
  957. topologies/introspection/techniques/maximization.py +191 -0
  958. topologies/introspection/techniques/neurons.py +206 -0
  959. topologies/introspection/techniques/probing.py +224 -0
  960. topologies/introspection/techniques/process.py +261 -0
  961. topologies/introspection/techniques/similarity.py +176 -0
  962. topologies/introspection/techniques/structure.py +246 -0
  963. topologies/introspection/techniques/weights.py +156 -0
  964. topologies/introspection/trace.py +324 -0
  965. topologies/introspection/views.py +168 -0
  966. topologies/layers/__init__.py +0 -0
  967. topologies/layers/alphafold.py +27 -0
  968. topologies/layers/audio_frontend.py +138 -0
  969. topologies/layers/audio_perturb.py +61 -0
  970. topologies/layers/augmix.py +62 -0
  971. topologies/layers/auprc.py +26 -0
  972. topologies/layers/autoformer.py +26 -0
  973. topologies/layers/awp.py +55 -0
  974. topologies/layers/bcq.py +40 -0
  975. topologies/layers/bevformer.py +111 -0
  976. topologies/layers/bic.py +17 -0
  977. topologies/layers/bidirectional_rnn_wrapper.py +34 -0
  978. topologies/layers/bifpn.py +28 -0
  979. topologies/layers/bigbird_attention.py +52 -0
  980. topologies/layers/bigvgan.py +23 -0
  981. topologies/layers/box_coder.py +53 -0
  982. topologies/layers/causal_temporal_block.py +22 -0
  983. topologies/layers/cbam_gate.py +43 -0
  984. topologies/layers/chemformer.py +79 -0
  985. topologies/layers/chunked_cross_attention.py +47 -0
  986. topologies/layers/cluster_gcn.py +59 -0
  987. topologies/layers/cnp.py +15 -0
  988. topologies/layers/complex.py +44 -0
  989. topologies/layers/conformer.py +59 -0
  990. topologies/layers/contrastive_search.py +45 -0
  991. topologies/layers/conv_blocks.py +26 -0
  992. topologies/layers/coverage.py +11 -0
  993. topologies/layers/cpvt.py +41 -0
  994. topologies/layers/crepe.py +43 -0
  995. topologies/layers/crestereo.py +88 -0
  996. topologies/layers/cvt.py +36 -0
  997. topologies/layers/ddim.py +21 -0
  998. topologies/layers/deeplob.py +111 -0
  999. topologies/layers/depth_mu_p.py +45 -0
  1000. topologies/layers/diagonal_ssm.py +33 -0
  1001. topologies/layers/diffusion_policy.py +121 -0
  1002. topologies/layers/diffusion_residual.py +27 -0
  1003. topologies/layers/distmult.py +23 -0
  1004. topologies/layers/drop_path.py +19 -0
  1005. topologies/layers/dsp_utils.py +79 -0
  1006. topologies/layers/dueling_q_head.py +16 -0
  1007. topologies/layers/edgenext.py +53 -0
  1008. topologies/layers/edm_heun.py +26 -0
  1009. topologies/layers/efficientad.py +11 -0
  1010. topologies/layers/efficientdet.py +32 -0
  1011. topologies/layers/feature_pyramid.py +22 -0
  1012. topologies/layers/feed_forward.py +27 -0
  1013. topologies/layers/film.py +42 -0
  1014. topologies/layers/fir_filter.py +22 -0
  1015. topologies/layers/flownet2.py +51 -0
  1016. topologies/layers/fm_interaction.py +11 -0
  1017. topologies/layers/fsq.py +24 -0
  1018. topologies/layers/ft_transformer.py +21 -0
  1019. topologies/layers/gail.py +33 -0
  1020. topologies/layers/galerkin_attention.py +24 -0
  1021. topologies/layers/galore.py +18 -0
  1022. topologies/layers/geglu.py +17 -0
  1023. topologies/layers/geglu_ffn.py +21 -0
  1024. topologies/layers/geneformer.py +45 -0
  1025. topologies/layers/ghostnet.py +44 -0
  1026. topologies/layers/git.py +55 -0
  1027. topologies/layers/gmt.py +44 -0
  1028. topologies/layers/gp_bo.py +39 -0
  1029. topologies/layers/graph_convolution.py +64 -0
  1030. topologies/layers/graph_readout.py +32 -0
  1031. topologies/layers/groupnorm_block.py +21 -0
  1032. topologies/layers/hard_swish.py +8 -0
  1033. topologies/layers/harmonic_oscillator.py +39 -0
  1034. topologies/layers/hole.py +37 -0
  1035. topologies/layers/hstu.py +42 -0
  1036. topologies/layers/hyena_block.py +51 -0
  1037. topologies/layers/hyena_operator.py +36 -0
  1038. topologies/layers/i3d.py +17 -0
  1039. topologies/layers/imap.py +37 -0
  1040. topologies/layers/inception_resnet.py +17 -0
  1041. topologies/layers/influence.py +20 -0
  1042. topologies/layers/informer.py +22 -0
  1043. topologies/layers/instancenorm_block.py +20 -0
  1044. topologies/layers/instant_ngp.py +54 -0
  1045. topologies/layers/integrated_gradients.py +26 -0
  1046. topologies/layers/inverted_residual.py +21 -0
  1047. topologies/layers/joint_energy.py +44 -0
  1048. topologies/layers/jukebox.py +44 -0
  1049. topologies/layers/k_planes.py +45 -0
  1050. topologies/layers/kan.py +64 -0
  1051. topologies/layers/kerple.py +34 -0
  1052. topologies/layers/kpconv.py +61 -0
  1053. topologies/layers/lars.py +28 -0
  1054. topologies/layers/layer_scale.py +20 -0
  1055. topologies/layers/layernorm.py +20 -0
  1056. topologies/layers/layernorm_affine.py +18 -0
  1057. topologies/layers/layoutlm.py +37 -0
  1058. topologies/layers/leaf.py +60 -0
  1059. topologies/layers/learned_position.py +22 -0
  1060. topologies/layers/linear_attention.py +42 -0
  1061. topologies/layers/linear_chain_crf.py +58 -0
  1062. topologies/layers/linformer.py +37 -0
  1063. topologies/layers/llava.py +19 -0
  1064. topologies/layers/mamba_block.py +39 -0
  1065. topologies/layers/masked_pooling.py +44 -0
  1066. topologies/layers/memorizing_attention.py +86 -0
  1067. topologies/layers/meshcnn.py +379 -0
  1068. topologies/layers/minigpt4.py +18 -0
  1069. topologies/layers/moirai.py +24 -0
  1070. topologies/layers/multi_head_attention.py +59 -0
  1071. topologies/layers/nearest_neighbor_retriever.py +23 -0
  1072. topologies/layers/neuralucb_bonus.py +16 -0
  1073. topologies/layers/nlu_heads.py +46 -0
  1074. topologies/layers/node_ensemble.py +71 -0
  1075. topologies/layers/noisy_nets.py +55 -0
  1076. topologies/layers/paged_attention.py +103 -0
  1077. topologies/layers/pali.py +52 -0
  1078. topologies/layers/patch_embedding.py +25 -0
  1079. topologies/layers/pcen.py +37 -0
  1080. topologies/layers/perceiver_io.py +30 -0
  1081. topologies/layers/performer.py +46 -0
  1082. topologies/layers/pointcnn.py +62 -0
  1083. topologies/layers/pointllm.py +25 -0
  1084. topologies/layers/ppo_clip.py +19 -0
  1085. topologies/layers/prelu.py +21 -0
  1086. topologies/layers/projection_head.py +16 -0
  1087. topologies/layers/qk_norm_attention.py +58 -0
  1088. topologies/layers/quartznet.py +41 -0
  1089. topologies/layers/quate.py +52 -0
  1090. topologies/layers/randaugment.py +99 -0
  1091. topologies/layers/rectified_flow.py +63 -0
  1092. topologies/layers/recurrent_backbone.py +27 -0
  1093. topologies/layers/replaced_token_detection_head.py +36 -0
  1094. topologies/layers/residual_blocks.py +19 -0
  1095. topologies/layers/resnet_v15.py +43 -0
  1096. topologies/layers/rmsnorm.py +16 -0
  1097. topologies/layers/rnn_transducer.py +42 -0
  1098. topologies/layers/rotary_embedding.py +24 -0
  1099. topologies/layers/rotate.py +46 -0
  1100. topologies/layers/rwkv_channel_mix.py +30 -0
  1101. topologies/layers/s3d.py +33 -0
  1102. topologies/layers/s4_kernel.py +93 -0
  1103. topologies/layers/saint.py +26 -0
  1104. topologies/layers/score_sde.py +46 -0
  1105. topologies/layers/seanet.py +43 -0
  1106. topologies/layers/sentence_bert.py +21 -0
  1107. topologies/layers/shufflenet_v2.py +27 -0
  1108. topologies/layers/silu_activation.py +16 -0
  1109. topologies/layers/simkd.py +28 -0
  1110. topologies/layers/simple.py +33 -0
  1111. topologies/layers/simplenet.py +47 -0
  1112. topologies/layers/sinusoidal_position.py +22 -0
  1113. topologies/layers/skip_upsample.py +20 -0
  1114. topologies/layers/skipinit.py +18 -0
  1115. topologies/layers/slot_attention.py +57 -0
  1116. topologies/layers/snake.py +13 -0
  1117. topologies/layers/snip.py +13 -0
  1118. topologies/layers/source_separation.py +15 -0
  1119. topologies/layers/speaker_embedding.py +22 -0
  1120. topologies/layers/specaugment.py +65 -0
  1121. topologies/layers/squeeze_excitation.py +18 -0
  1122. topologies/layers/stargan_v2.py +65 -0
  1123. topologies/layers/stft_frontend.py +27 -0
  1124. topologies/layers/structure_module.py +111 -0
  1125. topologies/layers/stylegan2.py +57 -0
  1126. topologies/layers/surrogate_gradient.py +57 -0
  1127. topologies/layers/tabtransformer.py +69 -0
  1128. topologies/layers/temporal_shift.py +31 -0
  1129. topologies/layers/tfn.py +60 -0
  1130. topologies/layers/tide.py +136 -0
  1131. topologies/layers/top_2_router.py +46 -0
  1132. topologies/layers/topk_moe_layer.py +63 -0
  1133. topologies/layers/transducer_asr.py +53 -0
  1134. topologies/layers/transformer_block.py +66 -0
  1135. topologies/layers/transh.py +26 -0
  1136. topologies/layers/tsmixer.py +60 -0
  1137. topologies/layers/ttt_titans_mblm.py +50 -0
  1138. topologies/layers/tucker.py +40 -0
  1139. topologies/layers/unet3plus.py +60 -0
  1140. topologies/layers/unetpp.py +42 -0
  1141. topologies/layers/v_trace.py +82 -0
  1142. topologies/layers/vector_quantizer.py +25 -0
  1143. topologies/layers/waveglow.py +45 -0
  1144. topologies/layers/whisper.py +54 -0
  1145. topologies/losses/catalog.json +529 -0
  1146. topologies/metadata/__init__.py +30 -0
  1147. topologies/metadata/schema.py +446 -0
  1148. topologies/metrics.py +206 -0
  1149. topologies/models/__init__.py +0 -0
  1150. topologies/models/actor_critic.py +33 -0
  1151. topologies/models/alexnet.py +57 -0
  1152. topologies/models/attention_nmt.py +93 -0
  1153. topologies/models/attn2d.py +68 -0
  1154. topologies/models/audio_crnn.py +79 -0
  1155. topologies/models/autoencoders.py +106 -0
  1156. topologies/models/autoint.py +50 -0
  1157. topologies/models/awr.py +46 -0
  1158. topologies/models/bart.py +121 -0
  1159. topologies/models/bert4rec.py +70 -0
  1160. topologies/models/bert_encoder.py +845 -0
  1161. topologies/models/bigbird.py +95 -0
  1162. topologies/models/biggan.py +407 -0
  1163. topologies/models/blip2.py +37 -0
  1164. topologies/models/bst.py +41 -0
  1165. topologies/models/byt5.py +204 -0
  1166. topologies/models/c3d.py +27 -0
  1167. topologies/models/canine.py +221 -0
  1168. topologies/models/cascade_rcnn.py +123 -0
  1169. topologies/models/caser.py +51 -0
  1170. topologies/models/centernet.py +26 -0
  1171. topologies/models/cgan.py +52 -0
  1172. topologies/models/charformer.py +272 -0
  1173. topologies/models/compact_convnet.py +38 -0
  1174. topologies/models/consistency_model.py +103 -0
  1175. topologies/models/contrastive_vision.py +90 -0
  1176. topologies/models/conv_asr.py +59 -0
  1177. topologies/models/convnext.py +88 -0
  1178. topologies/models/ctc_acoustic_model.py +63 -0
  1179. topologies/models/cyclegan.py +41 -0
  1180. topologies/models/dalle.py +56 -0
  1181. topologies/models/dbn.py +67 -0
  1182. topologies/models/dcgan.py +65 -0
  1183. topologies/models/dcn_v2.py +40 -0
  1184. topologies/models/dcrnn.py +160 -0
  1185. topologies/models/ddsp_synthesizer.py +51 -0
  1186. topologies/models/deberta.py +344 -0
  1187. topologies/models/decision_transformer.py +67 -0
  1188. topologies/models/deepfm.py +36 -0
  1189. topologies/models/deis.py +25 -0
  1190. topologies/models/deit.py +69 -0
  1191. topologies/models/densenet.py +85 -0
  1192. topologies/models/detect_ops.py +101 -0
  1193. topologies/models/detr.py +53 -0
  1194. topologies/models/diagonal_ssm_model.py +38 -0
  1195. topologies/models/diffusion_unet.py +94 -0
  1196. topologies/models/dinov2.py +53 -0
  1197. topologies/models/dip_vae.py +65 -0
  1198. topologies/models/distributional_q.py +119 -0
  1199. topologies/models/dit.py +109 -0
  1200. topologies/models/dlinear.py +47 -0
  1201. topologies/models/dpm_solver.py +31 -0
  1202. topologies/models/dqn_family.py +33 -0
  1203. topologies/models/dreamerv2.py +55 -0
  1204. topologies/models/dreamerv3.py +52 -0
  1205. topologies/models/droq.py +49 -0
  1206. topologies/models/dss_s5_mamba.py +156 -0
  1207. topologies/models/e_branchformer.py +51 -0
  1208. topologies/models/ease.py +48 -0
  1209. topologies/models/ecapa_tdnn.py +40 -0
  1210. topologies/models/efficient_attention.py +94 -0
  1211. topologies/models/efficient_conv.py +102 -0
  1212. topologies/models/fastpitch.py +41 -0
  1213. topologies/models/fastspeech2.py +45 -0
  1214. topologies/models/ffjord.py +48 -0
  1215. topologies/models/fibinet.py +53 -0
  1216. topologies/models/fits.py +34 -0
  1217. topologies/models/flow_matching.py +36 -0
  1218. topologies/models/fno.py +38 -0
  1219. topologies/models/fsq.py +22 -0
  1220. topologies/models/fullsubnet.py +60 -0
  1221. topologies/models/gatv2.py +50 -0
  1222. topologies/models/gemma.py +189 -0
  1223. topologies/models/glow_tts.py +109 -0
  1224. topologies/models/gmlp.py +57 -0
  1225. topologies/models/gmt.py +44 -0
  1226. topologies/models/gpt2.py +120 -0
  1227. topologies/models/gpt_decoder_family.py +297 -0
  1228. topologies/models/gpt_decoder_lm.py +71 -0
  1229. topologies/models/gpt_j_neox_pythia.py +135 -0
  1230. topologies/models/grace.py +73 -0
  1231. topologies/models/grad_tts.py +42 -0
  1232. topologies/models/graph_network.py +61 -0
  1233. topologies/models/graph_wavenet.py +34 -0
  1234. topologies/models/graphsage.py +57 -0
  1235. topologies/models/graphsaint.py +11 -0
  1236. topologies/models/han.py +10 -0
  1237. topologies/models/hnn.py +38 -0
  1238. topologies/models/hornet.py +29 -0
  1239. topologies/models/hyena.py +71 -0
  1240. topologies/models/i_jepa.py +32 -0
  1241. topologies/models/iaf.py +57 -0
  1242. topologies/models/icm.py +45 -0
  1243. topologies/models/image_text_dual_encoder.py +77 -0
  1244. topologies/models/imagegpt.py +53 -0
  1245. topologies/models/imap.py +38 -0
  1246. topologies/models/inception.py +94 -0
  1247. topologies/models/infovae.py +65 -0
  1248. topologies/models/ipa.py +69 -0
  1249. topologies/models/ipo.py +31 -0
  1250. topologies/models/iqn.py +52 -0
  1251. topologies/models/item_knn.py +26 -0
  1252. topologies/models/itransformer.py +31 -0
  1253. topologies/models/jamba_griffin_hawk.py +155 -0
  1254. topologies/models/kto.py +38 -0
  1255. topologies/models/ladder_vae.py +66 -0
  1256. topologies/models/latent_diffusion.py +303 -0
  1257. topologies/models/lenet.py +42 -0
  1258. topologies/models/lfq.py +22 -0
  1259. topologies/models/lightgcn.py +107 -0
  1260. topologies/models/line.py +45 -0
  1261. topologies/models/llama.py +171 -0
  1262. topologies/models/llama_decoder.py +84 -0
  1263. topologies/models/lnn.py +59 -0
  1264. topologies/models/longformer.py +106 -0
  1265. topologies/models/lstnet.py +45 -0
  1266. topologies/models/maddpg.py +50 -0
  1267. topologies/models/maf.py +57 -0
  1268. topologies/models/magvit.py +89 -0
  1269. topologies/models/mamba2_gated_deltanet_h3.py +122 -0
  1270. topologies/models/mappo.py +60 -0
  1271. topologies/models/marian.py +105 -0
  1272. topologies/models/mask2former.py +46 -0
  1273. topologies/models/mask_rcnn.py +26 -0
  1274. topologies/models/masked_image.py +62 -0
  1275. topologies/models/maskfeat.py +80 -0
  1276. topologies/models/maskgit.py +87 -0
  1277. topologies/models/matcha_tts.py +55 -0
  1278. topologies/models/matchboxnet.py +36 -0
  1279. topologies/models/matrix_factorization.py +31 -0
  1280. topologies/models/mistral.py +153 -0
  1281. topologies/models/mistral_decoder.py +103 -0
  1282. topologies/models/mixtral.py +180 -0
  1283. topologies/models/mlp.py +50 -0
  1284. topologies/models/mobilenet_v2.py +60 -0
  1285. topologies/models/modern_conv.py +99 -0
  1286. topologies/models/modernbert.py +182 -0
  1287. topologies/models/mpo.py +47 -0
  1288. topologies/models/mult_vae.py +48 -0
  1289. topologies/models/music_transformer.py +61 -0
  1290. topologies/models/musicgen.py +102 -0
  1291. topologies/models/muzero.py +59 -0
  1292. topologies/models/mvit.py +42 -0
  1293. topologies/models/nbeats.py +66 -0
  1294. topologies/models/neural_ode.py +26 -0
  1295. topologies/models/neural_spline_flows.py +78 -0
  1296. topologies/models/nextitnet.py +69 -0
  1297. topologies/models/ngcf.py +60 -0
  1298. topologies/models/nhits.py +68 -0
  1299. topologies/models/nice.py +33 -0
  1300. topologies/models/noam.py +32 -0
  1301. topologies/models/node.py +14 -0
  1302. topologies/models/node_ensemble.py +62 -0
  1303. topologies/models/noisy_nets.py +54 -0
  1304. topologies/models/nvae.py +50 -0
  1305. topologies/models/ot_cfm.py +103 -0
  1306. topologies/models/pairre.py +27 -0
  1307. topologies/models/panoptic.py +68 -0
  1308. topologies/models/phi.py +186 -0
  1309. topologies/models/pinn.py +29 -0
  1310. topologies/models/pinsage.py +55 -0
  1311. topologies/models/pix2pix.py +68 -0
  1312. topologies/models/pixart.py +42 -0
  1313. topologies/models/pixelcnn.py +26 -0
  1314. topologies/models/pna.py +56 -0
  1315. topologies/models/pnn.py +42 -0
  1316. topologies/models/point_cloud.py +57 -0
  1317. topologies/models/point_transformer.py +45 -0
  1318. topologies/models/point_transformer_v2.py +67 -0
  1319. topologies/models/pointpillars.py +78 -0
  1320. topologies/models/poolformer.py +49 -0
  1321. topologies/models/pos2d.py +51 -0
  1322. topologies/models/pose.py +62 -0
  1323. topologies/models/ppo_clip.py +18 -0
  1324. topologies/models/progan.py +39 -0
  1325. topologies/models/prompt_seg.py +71 -0
  1326. topologies/models/q_network.py +23 -0
  1327. topologies/models/qmix.py +58 -0
  1328. topologies/models/qr_dqn.py +56 -0
  1329. topologies/models/qwen.py +136 -0
  1330. topologies/models/rag_fid.py +90 -0
  1331. topologies/models/realnvp.py +84 -0
  1332. topologies/models/recurrent_models.py +102 -0
  1333. topologies/models/regnet.py +75 -0
  1334. topologies/models/resmlp.py +72 -0
  1335. topologies/models/resnet.py +80 -0
  1336. topologies/models/resnet_v1d.py +79 -0
  1337. topologies/models/resnet_variants.py +102 -0
  1338. topologies/models/retinanet.py +120 -0
  1339. topologies/models/retnet.py +111 -0
  1340. topologies/models/retro.py +90 -0
  1341. topologies/models/reversible_residual.py +18 -0
  1342. topologies/models/rgcn.py +139 -0
  1343. topologies/models/rloo.py +32 -0
  1344. topologies/models/rnd.py +19 -0
  1345. topologies/models/rq_transformer.py +56 -0
  1346. topologies/models/rq_vae.py +46 -0
  1347. topologies/models/rwkv.py +132 -0
  1348. topologies/models/s4.py +99 -0
  1349. topologies/models/sac.py +98 -0
  1350. topologies/models/sagan.py +37 -0
  1351. topologies/models/sagpool.py +35 -0
  1352. topologies/models/sasrec.py +59 -0
  1353. topologies/models/segment.py +77 -0
  1354. topologies/models/sentence_bert.py +21 -0
  1355. topologies/models/sentence_encoder.py +38 -0
  1356. topologies/models/sepformer.py +97 -0
  1357. topologies/models/seq2seq.py +169 -0
  1358. topologies/models/set_detect.py +72 -0
  1359. topologies/models/setr.py +36 -0
  1360. topologies/models/sgc.py +39 -0
  1361. topologies/models/sgc_precompute.py +30 -0
  1362. topologies/models/siglip.py +35 -0
  1363. topologies/models/sign.py +28 -0
  1364. topologies/models/sim.py +56 -0
  1365. topologies/models/simclr.py +32 -0
  1366. topologies/models/sincnet.py +54 -0
  1367. topologies/models/single_stage_detect.py +79 -0
  1368. topologies/models/sit.py +31 -0
  1369. topologies/models/sngan.py +30 -0
  1370. topologies/models/solov2.py +38 -0
  1371. topologies/models/sortpool.py +49 -0
  1372. topologies/models/soundstream.py +33 -0
  1373. topologies/models/spade.py +36 -0
  1374. topologies/models/spanbert.py +295 -0
  1375. topologies/models/sr_gnn.py +88 -0
  1376. topologies/models/static_embeddings.py +68 -0
  1377. topologies/models/stylegan3.py +26 -0
  1378. topologies/models/swin.py +99 -0
  1379. topologies/models/swin_unet.py +146 -0
  1380. topologies/models/t5.py +162 -0
  1381. topologies/models/tabtransformer.py +68 -0
  1382. topologies/models/tabular_mlp.py +104 -0
  1383. topologies/models/tacotron2.py +64 -0
  1384. topologies/models/tc_resnet.py +62 -0
  1385. topologies/models/tcvae.py +51 -0
  1386. topologies/models/td3.py +76 -0
  1387. topologies/models/td3_bc.py +44 -0
  1388. topologies/models/temporal_convnet.py +53 -0
  1389. topologies/models/text_cnn.py +57 -0
  1390. topologies/models/tf_gridnet.py +27 -0
  1391. topologies/models/tft.py +290 -0
  1392. topologies/models/token_mixer.py +73 -0
  1393. topologies/models/transformer_models.py +174 -0
  1394. topologies/models/transformer_xl.py +142 -0
  1395. topologies/models/transitional_text.py +97 -0
  1396. topologies/models/tsm.py +39 -0
  1397. topologies/models/two_stage_detect.py +84 -0
  1398. topologies/models/u_vit.py +52 -0
  1399. topologies/models/ul2.py +204 -0
  1400. topologies/models/unet.py +54 -0
  1401. topologies/models/unipc.py +62 -0
  1402. topologies/models/v_pred.py +24 -0
  1403. topologies/models/vae_mlp.py +67 -0
  1404. topologies/models/variational_autoencoders.py +129 -0
  1405. topologies/models/vgg.py +60 -0
  1406. topologies/models/video_conv.py +57 -0
  1407. topologies/models/video_ssl.py +51 -0
  1408. topologies/models/video_transformer.py +66 -0
  1409. topologies/models/vision_neck.py +64 -0
  1410. topologies/models/vision_norm.py +76 -0
  1411. topologies/models/vision_ssl.py +93 -0
  1412. topologies/models/vision_transformer.py +75 -0
  1413. topologies/models/vit_22b.py +23 -0
  1414. topologies/models/vit_encoder.py +88 -0
  1415. topologies/models/volume_seg.py +55 -0
  1416. topologies/models/voxel_detect.py +53 -0
  1417. topologies/models/vqvae.py +70 -0
  1418. topologies/models/wav2vec2.py +29 -0
  1419. topologies/models/wavenet.py +80 -0
  1420. topologies/models/wgan.py +32 -0
  1421. topologies/models/wgan_gp.py +58 -0
  1422. topologies/models/wide_and_deep.py +31 -0
  1423. topologies/models/world_model.py +73 -0
  1424. topologies/models/x3d.py +168 -0
  1425. topologies/models/x_vector.py +27 -0
  1426. topologies/models/xdeepfm.py +49 -0
  1427. topologies/models/xlnet.py +261 -0
  1428. topologies/models/xlstm.py +98 -0
  1429. topologies/models/xmem.py +500 -0
  1430. topologies/models/xtts.py +40 -0
  1431. topologies/models/yolov3.py +45 -0
  1432. topologies/models/yourtts.py +21 -0
  1433. topologies/nn/__init__.py +73 -0
  1434. topologies/nn/aux.py +51 -0
  1435. topologies/nn/causal.py +401 -0
  1436. topologies/nn/layers.py +317 -0
  1437. topologies/nn/mixers.py +246 -0
  1438. topologies/nn/models.py +552 -0
  1439. topologies/nn/slots.py +230 -0
  1440. topologies/optimization/__init__.py +95 -0
  1441. topologies/optimization/_torch_ao.py +50 -0
  1442. topologies/optimization/artifacts.py +396 -0
  1443. topologies/optimization/contracts.py +90 -0
  1444. topologies/optimization/distillation.py +632 -0
  1445. topologies/optimization/integrations.py +256 -0
  1446. topologies/optimization/pruning.py +416 -0
  1447. topologies/optimization/quantization.py +1261 -0
  1448. topologies/optimization/recommendations.py +165 -0
  1449. topologies/optimization/reporting.py +91 -0
  1450. topologies/optimization/torchao_pt2e.py +781 -0
  1451. topologies/optimization/workflow.py +368 -0
  1452. topologies/optimizers/catalog.json +136 -0
  1453. topologies/pretrained.py +278 -0
  1454. topologies/registry/__init__.py +6 -0
  1455. topologies/registry/api.py +59 -0
  1456. topologies/registry/index.py +165 -0
  1457. topologies/registry/loader.py +75 -0
  1458. topologies/registry/validate.py +470 -0
  1459. topologies/synth/__init__.py +178 -0
  1460. topologies/synth/attributes.py +570 -0
  1461. topologies/synth/blueprints/__init__.py +65 -0
  1462. topologies/synth/blueprints/_base.py +126 -0
  1463. topologies/synth/blueprints/algorithmic.py +312 -0
  1464. topologies/synth/blueprints/reasoning.py +42 -0
  1465. topologies/synth/blueprints/structured.py +240 -0
  1466. topologies/synth/blueprints/vision.py +88 -0
  1467. topologies/synth/cli.py +501 -0
  1468. topologies/synth/codecs.py +215 -0
  1469. topologies/synth/core.py +1331 -0
  1470. topologies/synth/counterfactuals.py +162 -0
  1471. topologies/synth/ctor.py +110 -0
  1472. topologies/synth/dataset.py +433 -0
  1473. topologies/synth/dists.py +461 -0
  1474. topologies/synth/dsp.py +352 -0
  1475. topologies/synth/errors.py +68 -0
  1476. topologies/synth/evaluate.py +659 -0
  1477. topologies/synth/export.py +150 -0
  1478. topologies/synth/fingerprint.py +124 -0
  1479. topologies/synth/generators/__init__.py +0 -0
  1480. topologies/synth/generators/augment.py +12 -0
  1481. topologies/synth/generators/base.py +200 -0
  1482. topologies/synth/generators/grammar.py +5 -0
  1483. topologies/synth/generators/program.py +9 -0
  1484. topologies/synth/introspect.py +107 -0
  1485. topologies/synth/jsonutil.py +241 -0
  1486. topologies/synth/langid.py +150 -0
  1487. topologies/synth/lib/__init__.py +105 -0
  1488. topologies/synth/lib/audio/__init__.py +768 -0
  1489. topologies/synth/lib/graph/__init__.py +340 -0
  1490. topologies/synth/lib/image/__init__.py +762 -0
  1491. topologies/synth/lib/math/__init__.py +175 -0
  1492. topologies/synth/lib/math/expr.py +191 -0
  1493. topologies/synth/lib/process/__init__.py +231 -0
  1494. topologies/synth/lib/random/__init__.py +240 -0
  1495. topologies/synth/lib/seq/__init__.py +418 -0
  1496. topologies/synth/lib/series/__init__.py +268 -0
  1497. topologies/synth/lib/tabular/__init__.py +733 -0
  1498. topologies/synth/lib/text/__init__.py +53 -0
  1499. topologies/synth/lib/text/faker.py +227 -0
  1500. topologies/synth/lib/text/formats.py +165 -0
  1501. topologies/synth/lib/text/generate.py +346 -0
  1502. topologies/synth/lib/text/grammar.py +189 -0
  1503. topologies/synth/lib/text/legacy.py +118 -0
  1504. topologies/synth/lib/text/noise.py +357 -0
  1505. topologies/synth/lib/text/numbers.py +115 -0
  1506. topologies/synth/lib/text/packs/de/faker.yaml +143 -0
  1507. topologies/synth/lib/text/packs/de/keyboard.yaml +2 -0
  1508. topologies/synth/lib/text/packs/de/translit.yaml +6 -0
  1509. topologies/synth/lib/text/packs/en/faker.yaml +174 -0
  1510. topologies/synth/lib/text/packs/en/keyboard.yaml +3 -0
  1511. topologies/synth/lib/text/packs/en/lexicon.yaml +4 -0
  1512. topologies/synth/lib/text/packs/en/numbers.yaml +34 -0
  1513. topologies/synth/lib/text/packs/en/paradigms.yaml +1 -0
  1514. topologies/synth/lib/text/packs/en/pools.yaml +7 -0
  1515. topologies/synth/lib/text/packs/en/translit.yaml +1 -0
  1516. topologies/synth/lib/text/packs/uk/faker.yaml +121 -0
  1517. topologies/synth/lib/text/packs/uk/keyboard.yaml +3 -0
  1518. topologies/synth/lib/text/packs/uk/lexicon.yaml +17 -0
  1519. topologies/synth/lib/text/packs/uk/numbers.yaml +54 -0
  1520. topologies/synth/lib/text/packs/uk/paradigms.yaml +20 -0
  1521. topologies/synth/lib/text/packs/uk/pools.yaml +7 -0
  1522. topologies/synth/lib/text/packs/uk/translit.yaml +37 -0
  1523. topologies/synth/lib/text/packs.py +122 -0
  1524. topologies/synth/lib/text/pools.py +58 -0
  1525. topologies/synth/lib/text/slots.py +94 -0
  1526. topologies/synth/lib/text/template.py +357 -0
  1527. topologies/synth/limits.py +83 -0
  1528. topologies/synth/loop.py +390 -0
  1529. topologies/synth/ops/__init__.py +66 -0
  1530. topologies/synth/ops/_callable.py +29 -0
  1531. topologies/synth/ops/augment.py +171 -0
  1532. topologies/synth/ops/balance.py +154 -0
  1533. topologies/synth/ops/base.py +235 -0
  1534. topologies/synth/ops/contamination.py +191 -0
  1535. topologies/synth/ops/dedup.py +402 -0
  1536. topologies/synth/ops/filters.py +186 -0
  1537. topologies/synth/ops/label.py +230 -0
  1538. topologies/synth/ops/parse.py +118 -0
  1539. topologies/synth/ops/split.py +217 -0
  1540. topologies/synth/ops/validate.py +95 -0
  1541. topologies/synth/ops/verify.py +530 -0
  1542. topologies/synth/overrides.py +225 -0
  1543. topologies/synth/pipeline.py +1054 -0
  1544. topologies/synth/planning.py +243 -0
  1545. topologies/synth/pools.py +19 -0
  1546. topologies/synth/previews.py +187 -0
  1547. topologies/synth/quality/__init__.py +34 -0
  1548. topologies/synth/quality/embed.py +87 -0
  1549. topologies/synth/quality/fidelity.py +421 -0
  1550. topologies/synth/quality/insights.py +202 -0
  1551. topologies/synth/quality/intrinsic.py +406 -0
  1552. topologies/synth/quality/privacy.py +85 -0
  1553. topologies/synth/quality/report.py +356 -0
  1554. topologies/synth/quality/slices.py +118 -0
  1555. topologies/synth/quality/utility.py +363 -0
  1556. topologies/synth/records.py +171 -0
  1557. topologies/synth/report.py +195 -0
  1558. topologies/synth/reviewing.py +332 -0
  1559. topologies/synth/rng.py +225 -0
  1560. topologies/synth/runtime.py +33 -0
  1561. topologies/synth/sampling.py +613 -0
  1562. topologies/synth/schema.py +268 -0
  1563. topologies/synth/spec.py +366 -0
  1564. topologies/synth/store.py +374 -0
  1565. topologies/synth/streaming.py +241 -0
  1566. topologies/synth/tasks.py +717 -0
  1567. topologies/synth/textutil.py +287 -0
  1568. topologies/synth/torch_views.py +1157 -0
  1569. topologies/synth/valuetypes.py +1741 -0
  1570. topologies/synth/verdict.py +74 -0
  1571. topologies/synth/versions.py +218 -0
  1572. topologies/synth/yaml_spec.py +600 -0
  1573. topologies/taxonomy/__init__.py +8 -0
  1574. topologies/taxonomy/validate.py +74 -0
  1575. topologies/tokenizers/__init__.py +78 -0
  1576. topologies/tokenizers/base.py +350 -0
  1577. topologies/tokenizers/bpe.py +190 -0
  1578. topologies/tokenizers/hf.py +157 -0
  1579. topologies/tokenizers/simple.py +139 -0
  1580. topologies/tokenizers/stats.py +86 -0
  1581. topologies/training/__init__.py +88 -0
  1582. topologies/training/_checkpointing.py +232 -0
  1583. topologies/training/_loops.py +215 -0
  1584. topologies/training/_observability.py +148 -0
  1585. topologies/training/_optim_factory.py +341 -0
  1586. topologies/training/_run_info.py +93 -0
  1587. topologies/training/_step_metrics.py +128 -0
  1588. topologies/training/_steps.py +358 -0
  1589. topologies/training/_trainer_config.py +50 -0
  1590. topologies/training/adapters.py +207 -0
  1591. topologies/training/aux.py +62 -0
  1592. topologies/training/bart_data.py +124 -0
  1593. topologies/training/byt5_data.py +99 -0
  1594. topologies/training/callbacks.py +73 -0
  1595. topologies/training/canine_data.py +69 -0
  1596. topologies/training/charformer_data.py +65 -0
  1597. topologies/training/checkpoint.py +207 -0
  1598. topologies/training/components.py +106 -0
  1599. topologies/training/configs.py +309 -0
  1600. topologies/training/data.py +203 -0
  1601. topologies/training/device.py +103 -0
  1602. topologies/training/distributed.py +165 -0
  1603. topologies/training/engine.py +1085 -0
  1604. topologies/training/errors.py +61 -0
  1605. topologies/training/introspect.py +19 -0
  1606. topologies/training/logging/__init__.py +21 -0
  1607. topologies/training/logging/base.py +82 -0
  1608. topologies/training/logging/factory.py +69 -0
  1609. topologies/training/logging/jsonl.py +210 -0
  1610. topologies/training/logging/tabular.py +125 -0
  1611. topologies/training/logging/text.py +137 -0
  1612. topologies/training/logging_.py +23 -0
  1613. topologies/training/losses.py +218 -0
  1614. topologies/training/marian_data.py +51 -0
  1615. topologies/training/model_recipes.json +1331 -0
  1616. topologies/training/monitoring/__init__.py +15 -0
  1617. topologies/training/monitoring/base.py +55 -0
  1618. topologies/training/monitoring/dashboard/__init__.py +17 -0
  1619. topologies/training/monitoring/dashboard/app.py +87 -0
  1620. topologies/training/monitoring/dashboard/charts.py +50 -0
  1621. topologies/training/monitoring/dashboard/state.py +202 -0
  1622. topologies/training/monitoring/dashboard/views.py +36 -0
  1623. topologies/training/monitoring/dashboard/widgets.py +64 -0
  1624. topologies/training/monitoring/factory.py +88 -0
  1625. topologies/training/monitoring/standard.py +264 -0
  1626. topologies/training/monitoring/system.py +112 -0
  1627. topologies/training/recipe_base.py +447 -0
  1628. topologies/training/recipes/__init__.py +30 -0
  1629. topologies/training/recipes/audio.py +88 -0
  1630. topologies/training/recipes/autoenc.py +124 -0
  1631. topologies/training/recipes/canine.py +47 -0
  1632. topologies/training/recipes/classify.py +440 -0
  1633. topologies/training/recipes/contrastive.py +83 -0
  1634. topologies/training/recipes/density.py +50 -0
  1635. topologies/training/recipes/detection.py +118 -0
  1636. topologies/training/recipes/diffusion.py +88 -0
  1637. topologies/training/recipes/distillation.py +128 -0
  1638. topologies/training/recipes/gan.py +142 -0
  1639. topologies/training/recipes/graph.py +29 -0
  1640. topologies/training/recipes/lm.py +935 -0
  1641. topologies/training/recipes/mixtral.py +66 -0
  1642. topologies/training/recipes/permutation_lm.py +134 -0
  1643. topologies/training/recipes/ppo.py +233 -0
  1644. topologies/training/recipes/recommender.py +104 -0
  1645. topologies/training/recipes/router_probe.py +63 -0
  1646. topologies/training/recipes/segmentation.py +76 -0
  1647. topologies/training/recipes/spanbert.py +125 -0
  1648. topologies/training/recipes/speech.py +35 -0
  1649. topologies/training/recipes/static.py +28 -0
  1650. topologies/training/recipes/structured_objective.py +64 -0
  1651. topologies/training/recipes/transformer_xl.py +76 -0
  1652. topologies/training/recipes/tts.py +86 -0
  1653. topologies/training/recipes/value_learning.py +39 -0
  1654. topologies/training/recipes/vision.py +555 -0
  1655. topologies/training/registries.py +573 -0
  1656. topologies/training/reporting/__init__.py +35 -0
  1657. topologies/training/reporting/events.py +210 -0
  1658. topologies/training/reporting/reporter.py +204 -0
  1659. topologies/training/resolve.py +248 -0
  1660. topologies/training/schema.py +4 -0
  1661. topologies/training/stability/activation_offload.py +6 -0
  1662. topologies/training/stability/bf16_recipe.py +6 -0
  1663. topologies/training/stability/compile_parity.py +6 -0
  1664. topologies/training/stability/fsdp_wrap.py +6 -0
  1665. topologies/training/stability/grad_checkpoint.py +16 -0
  1666. topologies/training/stability/grad_clip.py +57 -0
  1667. topologies/training/stability/llrd.py +8 -0
  1668. topologies/training/stability/loss_scale.py +6 -0
  1669. topologies/training/stability/nan_skip.py +8 -0
  1670. topologies/training/stability/zero_partition.py +6 -0
  1671. topologies/training/t5_data.py +90 -0
  1672. topologies/training/ul2_data.py +62 -0
  1673. topologies/training-artifacts.lock.json +302 -0
  1674. topologies/training_schema.py +99 -0
  1675. topologies/utils/__init__.py +8 -0
  1676. topologies/utils/locking.py +80 -0
  1677. topologies/utils/logging.py +40 -0
  1678. topologies/validation/__init__.py +4 -0
  1679. topologies/validation/catalog_specs.json +953 -0
  1680. topologies/validation/catalog_specs.py +65 -0
  1681. topologies/validation/catalog_workflows.py +1854 -0
  1682. topologies/validation/component_workflows.py +588 -0
  1683. topologies/validation/framework.py +151 -0
  1684. topologies/validation/gate.py +87 -0
  1685. topologies/validation/implementation.py +35 -0
  1686. topologies/validation/source_style.py +23 -0
  1687. topologies/visualization/__init__.py +103 -0
  1688. topologies/visualization/adapters.py +225 -0
  1689. topologies/visualization/core.py +872 -0
  1690. topologies/visualization/experiment_views.py +765 -0
  1691. topologies/visualization/format.py +322 -0
  1692. topologies/visualization/live.py +223 -0
  1693. topologies/visualization/matplotlib/__init__.py +498 -0
  1694. topologies/visualization/matplotlib/live.py +247 -0
  1695. topologies/visualization/matplotlib/style.py +262 -0
  1696. topologies/visualization/matplotlib/views/__init__.py +84 -0
  1697. topologies/visualization/matplotlib/views/analysis.py +182 -0
  1698. topologies/visualization/matplotlib/views/engineering.py +206 -0
  1699. topologies/visualization/matplotlib/views/experiments.py +344 -0
  1700. topologies/visualization/matplotlib/views/generic.py +87 -0
  1701. topologies/visualization/matplotlib/views/hardware.py +64 -0
  1702. topologies/visualization/matplotlib/views/profile.py +77 -0
  1703. topologies/visualization/matplotlib/views/training.py +286 -0
  1704. topologies/visualization/matplotlib_views.py +325 -0
  1705. topologies/visualization/state.py +989 -0
  1706. topologies/visualization/terminal/__init__.py +133 -0
  1707. topologies/visualization/terminal/caps.py +195 -0
  1708. topologies/visualization/terminal/driver.py +356 -0
  1709. topologies/visualization/terminal/glyphs.py +102 -0
  1710. topologies/visualization/terminal/keys.py +146 -0
  1711. topologies/visualization/terminal/layout.py +162 -0
  1712. topologies/visualization/terminal/panels.py +128 -0
  1713. topologies/visualization/terminal/progress.py +76 -0
  1714. topologies/visualization/terminal/screen.py +503 -0
  1715. topologies/visualization/terminal/text.py +401 -0
  1716. topologies/visualization/terminal/widgets.py +967 -0
  1717. topologies/visualization/testing.py +827 -0
  1718. topologies/visualization/theme.py +252 -0
  1719. topologies/visualization/training_views.py +1280 -0
  1720. topologies/visualization/views.py +143 -0
  1721. topologies-0.0.1.dist-info/METADATA +143 -0
  1722. topologies-0.0.1.dist-info/RECORD +1725 -0
  1723. topologies-0.0.1.dist-info/WHEEL +4 -0
  1724. topologies-0.0.1.dist-info/entry_points.txt +2 -0
  1725. topologies-0.0.1.dist-info/licenses/LICENSE +191 -0
@@ -0,0 +1,35 @@
1
+ {
2
+ "files": {
3
+ "catalog/losses/adversarial-hinge.json": "286c60f4abe259ecbc966997c5ea69cfafeb2b0a7ab3cde755375fa7aa6bfdc5",
4
+ "catalog/losses/binary-cross-entropy-logits.json": "911c44ce2e2c851e4ea94714e17db4ea7b588186160863a8d2c4b7ca0434e41f",
5
+ "catalog/losses/bpr.json": "6bb7c9bee56ed46e76279f2ff15e24bba23d5ca6f51759b3fa40e96d438922d5",
6
+ "catalog/losses/cross-entropy.json": "efd29b1d566b528b1c2bd643a5958704f47a742a4f8328283807115ad82729e7",
7
+ "catalog/losses/ctc.json": "a9fafaa022979a8c5a11f5c70b88b51f83b707478900db0efe0af6e5fa59df02",
8
+ "catalog/losses/density-nll.json": "8efb9698b515178761c8a97e5114e1b8426cb4adf35f12c5c4a3ada3e156ffae",
9
+ "catalog/losses/dice.json": "74ed9d2a316587a9391e722394f0841cf9e6c6e74b2dcd10e240f5e0df4e8515",
10
+ "catalog/losses/gaussian-kl.json": "e6b890155cbd9841f9e322a8162a748ddab9ac82ce7307892f9922a33ffdc762",
11
+ "catalog/losses/gaussian-nll.json": "738fe652a7bc7a05a4bf349711b80eb0ddfbab6f15ef37ac786b583eec2a757d",
12
+ "catalog/losses/generalized-iou.json": "58738fa365ef9c4b3ccce23ec6792ee22759dfdfd19a71c8b0138d67d99e65e6",
13
+ "catalog/losses/huber.json": "c7483686354fbf8585dd058c4e9c4fdc0e34945acfc2e7e1654a7766ea19803b",
14
+ "catalog/losses/info-nce.json": "0192a354405365f7e72a3ce0a2144a8d8d9ff0c990b6d8d2765272bd1becd0cc",
15
+ "catalog/losses/mean-absolute-error.json": "63d67ec7939833c2b14a980a0c2877b6744d280fb9832360212a48a7c8ee71be",
16
+ "catalog/losses/mean-squared-error.json": "0ee304df66459af43ece23089c52ca4db06e2b5c38ad821b88edfe76b40174de",
17
+ "catalog/losses/multi-resolution-stft.json": "40152f8fae18a70bdba318d72f73f8825b8fed4eb3b3aabb6b3cd29943bea051",
18
+ "catalog/losses/pinball.json": "634d8e419bb589f3dc88c6ac298f34661399dff72ba358b0eb00fe346dc04ba1",
19
+ "catalog/losses/si-sdr.json": "0e5aae6fc3b456ef0e9fd7344063af0649cfff074ee7a5497b310cddce8b9b56",
20
+ "catalog/losses/sigmoid-focal.json": "3bbcbdffbef6b8f0273a41deed2eb3464090bdd3d2cb892288f6d2b727636010",
21
+ "catalog/losses/smooth-l1.json": "1ff330df021b22bde778e4eb368808ca362a33756699bea80b5adf90bb069a19",
22
+ "catalog/losses/softmax-focal.json": "99c537a068de5dd6ee895c95904a7bd4577280c3f4ff66850f55393c43a20d82",
23
+ "catalog/losses/triplet-margin.json": "f50ab04a959fbfa56aec7d67e696bce1c6105fcb514cb0c81f0cfe6d96c15ea5",
24
+ "catalog/optimizers/adagrad.json": "eb69076643a5972c978f66de9c8b823a4611a3491249d29f2232169adc5b8cce",
25
+ "catalog/optimizers/adam.json": "e420f39369b3b177d750def83fa01da346243c644f31a238f38f772b5e5402ef",
26
+ "catalog/optimizers/adamw.json": "babae746f4bc25d204f6f1681e85ed9c552ddb3d982ec129d85eb8ffb7fe69bb",
27
+ "catalog/optimizers/rmsprop.json": "77289f20d17474864a7673f9e95d0199ee5580b194d66b4acaa69ab9dc7072b0",
28
+ "catalog/optimizers/sgd.json": "a3b871e622acaf3254656649a04cec267e3c329936822f063c6aadf85132baf8",
29
+ "implementations/optimizers/core.py": "4ceb0d8a8d647fd4990fee685fe979566f0385431bfb15d5e65b46e58e6735d2",
30
+ "implementations/training/core.py": "878f03ad0677bb8cd1b993861f72dcf5bfa14853743a5b355353c1d1f8162f9b",
31
+ "losses/catalog.json": "2900b0eb1a4a5b2c7a9c1885a24df206eed6929005470d69aab561a4442f449f",
32
+ "optimizers/catalog.json": "94cb3aed39e274bbc8912c07e5d72189fdc801eca8b5ebe19b8ce4d1d9fc21a6"
33
+ },
34
+ "schema_version": 1
35
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "files": {
3
+ "catalog/losses/adversarial-hinge.json": "286c60f4abe259ecbc966997c5ea69cfafeb2b0a7ab3cde755375fa7aa6bfdc5",
4
+ "catalog/losses/binary-cross-entropy-logits.json": "911c44ce2e2c851e4ea94714e17db4ea7b588186160863a8d2c4b7ca0434e41f",
5
+ "catalog/losses/bpr.json": "6bb7c9bee56ed46e76279f2ff15e24bba23d5ca6f51759b3fa40e96d438922d5",
6
+ "catalog/losses/cross-entropy.json": "efd29b1d566b528b1c2bd643a5958704f47a742a4f8328283807115ad82729e7",
7
+ "catalog/losses/ctc.json": "a9fafaa022979a8c5a11f5c70b88b51f83b707478900db0efe0af6e5fa59df02",
8
+ "catalog/losses/density-nll.json": "8efb9698b515178761c8a97e5114e1b8426cb4adf35f12c5c4a3ada3e156ffae",
9
+ "catalog/losses/dice.json": "74ed9d2a316587a9391e722394f0841cf9e6c6e74b2dcd10e240f5e0df4e8515",
10
+ "catalog/losses/gaussian-kl.json": "e6b890155cbd9841f9e322a8162a748ddab9ac82ce7307892f9922a33ffdc762",
11
+ "catalog/losses/gaussian-nll.json": "738fe652a7bc7a05a4bf349711b80eb0ddfbab6f15ef37ac786b583eec2a757d",
12
+ "catalog/losses/generalized-iou.json": "58738fa365ef9c4b3ccce23ec6792ee22759dfdfd19a71c8b0138d67d99e65e6",
13
+ "catalog/losses/huber.json": "c7483686354fbf8585dd058c4e9c4fdc0e34945acfc2e7e1654a7766ea19803b",
14
+ "catalog/losses/info-nce.json": "0192a354405365f7e72a3ce0a2144a8d8d9ff0c990b6d8d2765272bd1becd0cc",
15
+ "catalog/losses/mean-absolute-error.json": "63d67ec7939833c2b14a980a0c2877b6744d280fb9832360212a48a7c8ee71be",
16
+ "catalog/losses/mean-squared-error.json": "0ee304df66459af43ece23089c52ca4db06e2b5c38ad821b88edfe76b40174de",
17
+ "catalog/losses/multi-resolution-stft.json": "40152f8fae18a70bdba318d72f73f8825b8fed4eb3b3aabb6b3cd29943bea051",
18
+ "catalog/losses/pinball.json": "634d8e419bb589f3dc88c6ac298f34661399dff72ba358b0eb00fe346dc04ba1",
19
+ "catalog/losses/si-sdr.json": "0e5aae6fc3b456ef0e9fd7344063af0649cfff074ee7a5497b310cddce8b9b56",
20
+ "catalog/losses/sigmoid-focal.json": "3bbcbdffbef6b8f0273a41deed2eb3464090bdd3d2cb892288f6d2b727636010",
21
+ "catalog/losses/smooth-l1.json": "1ff330df021b22bde778e4eb368808ca362a33756699bea80b5adf90bb069a19",
22
+ "catalog/losses/softmax-focal.json": "99c537a068de5dd6ee895c95904a7bd4577280c3f4ff66850f55393c43a20d82",
23
+ "catalog/losses/triplet-margin.json": "f50ab04a959fbfa56aec7d67e696bce1c6105fcb514cb0c81f0cfe6d96c15ea5",
24
+ "catalog/optimizers/adagrad.json": "eb69076643a5972c978f66de9c8b823a4611a3491249d29f2232169adc5b8cce",
25
+ "catalog/optimizers/adam.json": "e420f39369b3b177d750def83fa01da346243c644f31a238f38f772b5e5402ef",
26
+ "catalog/optimizers/adamw.json": "babae746f4bc25d204f6f1681e85ed9c552ddb3d982ec129d85eb8ffb7fe69bb",
27
+ "catalog/optimizers/rmsprop.json": "77289f20d17474864a7673f9e95d0199ee5580b194d66b4acaa69ab9dc7072b0",
28
+ "catalog/optimizers/sgd.json": "a3b871e622acaf3254656649a04cec267e3c329936822f063c6aadf85132baf8",
29
+ "implementations/optimizers/core.py": "4ceb0d8a8d647fd4990fee685fe979566f0385431bfb15d5e65b46e58e6735d2",
30
+ "implementations/training/core.py": "878f03ad0677bb8cd1b993861f72dcf5bfa14853743a5b355353c1d1f8162f9b",
31
+ "losses/catalog.json": "2900b0eb1a4a5b2c7a9c1885a24df206eed6929005470d69aab561a4442f449f",
32
+ "optimizers/catalog.json": "94cb3aed39e274bbc8912c07e5d72189fdc801eca8b5ebe19b8ce4d1d9fc21a6"
33
+ },
34
+ "schema_version": 1
35
+ }
topologies/__init__.py ADDED
@@ -0,0 +1,89 @@
1
+ """topologies: a library of modern neural-network architectures on PyTorch.
2
+
3
+ The most-used entry points are importable from the top level (loaded lazily):
4
+
5
+ from topologies import Trainer, build, data, generate, load_pretrained
6
+
7
+ Subpackages: ``data`` (datasets/loaders), ``tokenizers``, ``nn`` (components
8
+ and stacks), ``build`` (presets, parameter budgets, validation),
9
+ ``training`` (Trainer + recipes), ``models``/``layers`` (catalog),
10
+ ``generation``, ``inference``, ``metrics``, ``pretrained``, ``experiments``
11
+ (``Experiment`` / ``experiment`` / ``compare``: comparisons over many trials),
12
+ ``synth`` (synthetic data generation, measured by training on it),
13
+ ``introspection`` (``introspect(model)``: what happens inside a network).
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ import importlib
19
+ import logging
20
+ from typing import Any
21
+
22
+ __version__ = "0.0.1"
23
+
24
+ # A library never configures output: applications attach handlers themselves.
25
+ logging.getLogger("topologies").addHandler(logging.NullHandler())
26
+
27
+ _LAZY: dict[str, tuple[str, str | None]] = {
28
+ "Registry": ("topologies.registry.api", "Registry"),
29
+ "Trainer": ("topologies.training", "Trainer"),
30
+ "analyze": ("topologies.analysis", "analyze"),
31
+ "analyze_training": ("topologies.analysis", "analyze_training"),
32
+ "analyze_inference": ("topologies.analysis", "analyze_inference"),
33
+ "analyze_hardware": ("topologies.analysis", "analyze_hardware"),
34
+ "TrainingError": ("topologies.training", "TrainingError"),
35
+ "build": ("topologies.build", None), # callable package: build(...)
36
+ "ConfigError": ("topologies.build", "ConfigError"),
37
+ "generate": ("topologies.generation", "generate"),
38
+ "stream_generate": ("topologies.generation", "stream_generate"),
39
+ "load_pretrained": ("topologies.pretrained", "load_pretrained"),
40
+ "save_pretrained": ("topologies.pretrained", "save_pretrained"),
41
+ "train_tokenizer": ("topologies.tokenizers", "train_tokenizer"),
42
+ "load_tokenizer": ("topologies.tokenizers", "load_tokenizer"),
43
+ "predict": ("topologies.inference", "predict"),
44
+ "data": ("topologies.data", None),
45
+ "datasets": ("topologies.datasets", None),
46
+ "list_datasets": ("topologies.datasets", "list_datasets"),
47
+ "search_datasets": ("topologies.datasets", "search_datasets"),
48
+ "get_dataset": ("topologies.datasets", "get_dataset"),
49
+ "tokenizers": ("topologies.tokenizers", None),
50
+ "nn": ("topologies.nn", None),
51
+ "metrics": ("topologies.metrics", None),
52
+ "models": ("topologies.models", None),
53
+ "layers": ("topologies.layers", None),
54
+ "training": ("topologies.training", None),
55
+ "generation": ("topologies.generation", None),
56
+ "inference": ("topologies.inference", None),
57
+ "pretrained": ("topologies.pretrained", None),
58
+ "Experiment": ("topologies.experiments", "Experiment"),
59
+ "experiment": ("topologies.experiments", "experiment"),
60
+ "compare": ("topologies.experiments", "compare"),
61
+ "experiments": ("topologies.experiments", None),
62
+ "synth": ("topologies.synth", None),
63
+ "optimization": ("topologies.optimization", None),
64
+ "evaluation": ("topologies.evaluation", None),
65
+ "introspect": ("topologies.introspection.api", "introspect"),
66
+ "introspection": ("topologies.introspection", None),
67
+ }
68
+
69
+ __all__ = ["__version__", *_LAZY] # noqa: PLE0604
70
+
71
+ # Catalog packages are plain PyTorch; the framework adds list_*/get_* and lazy
72
+ # class attributes to them from the outside.
73
+ from topologies import _catalog
74
+
75
+ _catalog.install()
76
+
77
+
78
+ def __getattr__(name: str) -> Any:
79
+ target = _LAZY.get(name)
80
+ if target is None:
81
+ raise AttributeError(f"module 'topologies' has no attribute {name!r}")
82
+ module = importlib.import_module(target[0])
83
+ value = module if target[1] is None else getattr(module, target[1])
84
+ globals()[name] = value
85
+ return value
86
+
87
+
88
+ def __dir__() -> list[str]:
89
+ return sorted(set(globals()) | set(__all__))
topologies/_catalog.py ADDED
@@ -0,0 +1,293 @@
1
+ """Framework-side discovery of the catalog (``topologies.models`` / ``topologies.layers``).
2
+
3
+ Catalog files are standalone PyTorch code: stdlib + ``torch`` only, no
4
+ ``topologies`` imports, plain ``nn.Module`` subclasses. They never know the
5
+ framework exists; this module adapts them from the outside.
6
+
7
+ A catalog class is any top-level class whose body sets
8
+ ``architecture_id = "..."`` (models) or ``component_id = "..."`` (layers).
9
+ Inheritance plays no role. Files are parsed with ``ast`` (never imported), so
10
+ ``import topologies.models`` stays cheap; the class is imported on first use
11
+ and its id attribute is checked against the parsed one.
12
+
13
+ The registry (``registry/*.yaml``: ``id`` / ``module_path`` / ``class_name``)
14
+ is cross-checked against the scan by ``registry_mismatches`` (CI and
15
+ ``topologies registry validate``). It is not read at runtime because the
16
+ YAML files are not shipped in the wheel.
17
+
18
+ ``install()`` (called from ``topologies/__init__.py``) attaches the
19
+ catalog API to the two packages: ``list_models`` / ``get_model``,
20
+ ``list_layers`` / ``get_layer`` and lazy class attributes such as
21
+ ``topologies.models.ResNetBackbone``.
22
+ """
23
+
24
+ from __future__ import annotations
25
+
26
+ import ast
27
+ import importlib
28
+ import warnings
29
+ from dataclasses import dataclass
30
+ from pathlib import Path
31
+ from typing import Any
32
+
33
+ # kind -> (package, id attribute)
34
+ KINDS: dict[str, tuple[str, str]] = {
35
+ "model": ("topologies.models", "architecture_id"),
36
+ "layer": ("topologies.layers", "component_id"),
37
+ }
38
+
39
+ @dataclass(frozen=True)
40
+ class CatalogEntry:
41
+ name: str
42
+ id: str
43
+ module: str
44
+ is_demo: bool
45
+ kind: str = "model"
46
+
47
+ def load(self) -> type:
48
+ cls = getattr(importlib.import_module(self.module), self.name)
49
+ attr = KINDS[self.kind][1]
50
+ if getattr(cls, attr, None) != self.id:
51
+ raise ImportError(
52
+ f"{self.module}.{self.name}.{attr} is {getattr(cls, attr, None)!r}, "
53
+ f"expected {self.id!r}")
54
+ return cls
55
+
56
+
57
+ def scan(package: str, directory: Path, kind: str) -> dict[str, CatalogEntry]:
58
+ """``class name -> entry`` for every catalog class defined in ``directory``."""
59
+ attribute = KINDS[kind][1]
60
+ out: dict[str, CatalogEntry] = {}
61
+ for path in sorted(directory.glob("*.py")):
62
+ if path.name.startswith("_"):
63
+ continue
64
+ text = path.read_text(encoding="utf-8")
65
+ for node in ast.parse(text, filename=str(path)).body:
66
+ if not isinstance(node, ast.ClassDef):
67
+ continue
68
+ values = {}
69
+ for assignment in node.body:
70
+ if isinstance(assignment, ast.Assign):
71
+ targets = assignment.targets
72
+ elif isinstance(assignment, ast.AnnAssign):
73
+ targets = [assignment.target]
74
+ else:
75
+ continue
76
+ if isinstance(assignment.value, ast.Constant):
77
+ for target in targets:
78
+ if isinstance(target, ast.Name):
79
+ values[target.id] = assignment.value.value
80
+ ident = values.get(attribute)
81
+ if not isinstance(ident, str):
82
+ continue
83
+ if node.name in out:
84
+ raise ValueError(f"duplicate catalog class {node.name!r}: {path}")
85
+ out[node.name] = CatalogEntry(
86
+ name=node.name, id=ident, module=f"{package}.{path.stem}",
87
+ is_demo=values.get("is_demo") is True, kind=kind,
88
+ )
89
+ return out
90
+
91
+
92
+ _CACHE: dict[str, dict[str, CatalogEntry]] = {}
93
+
94
+
95
+ def entries(kind: str) -> dict[str, CatalogEntry]:
96
+ """Cached scan of the ``kind`` package (``"model"`` or ``"layer"``)."""
97
+ if kind not in _CACHE:
98
+ package = KINDS[kind][0]
99
+ directory = Path(importlib.import_module(package).__path__[0])
100
+ _CACHE[kind] = scan(package, directory, kind)
101
+ return _CACHE[kind]
102
+
103
+
104
+ def find(entries: dict[str, CatalogEntry], key: str, kind: str) -> CatalogEntry:
105
+ """Look up by class name, registry id, or module name (``llama_decoder``)."""
106
+ if key in entries:
107
+ return entries[key]
108
+ norm = key.strip().lower().replace("_", "-")
109
+ for e in entries.values():
110
+ if norm in (e.id, e.name.lower(), e.module.rsplit(".", 1)[-1].replace("_", "-")):
111
+ return e
112
+ import difflib
113
+
114
+ names = sorted({*entries, *(e.id for e in entries.values() if e.id)})
115
+ sug = difflib.get_close_matches(key, names, n=3)
116
+ hint = f" Did you mean {', '.join(map(repr, sug))}?" if sug else ""
117
+ raise KeyError(f"Unknown {kind} {key!r}.{hint} See list_{kind}s().")
118
+
119
+
120
+ def list_entries(kind: str, *, include_demo: bool = True) -> list[dict[str, Any]]:
121
+ return [
122
+ {"name": e.name, "id": e.id, "module": e.module, "is_demo": e.is_demo}
123
+ for e in sorted(entries(kind).values(), key=lambda e: e.id or e.name)
124
+ if include_demo or not e.is_demo
125
+ ]
126
+
127
+
128
+ def get(kind: str, key: str) -> type:
129
+ return find(entries(kind), key, kind).load()
130
+
131
+
132
+ def catalog_id(obj: Any) -> tuple[str, str] | None:
133
+ """``(kind, id)`` if ``obj`` (class or instance) is the canonical catalog class."""
134
+ cls = obj if isinstance(obj, type) else type(obj)
135
+ for kind, (package, attr) in KINDS.items():
136
+ ident = cls.__dict__.get(attr)
137
+ if not isinstance(ident, str) or not cls.__module__.startswith(package + "."):
138
+ continue
139
+ entry = entries(kind).get(cls.__name__)
140
+ if entry is not None and entry.id == ident and entry.module == cls.__module__:
141
+ return kind, ident
142
+ return None
143
+
144
+
145
+ FRAMEWORK_DECORATORS = frozenset({"presets", "register_presets", "budget_knobs",
146
+ "register_budget_knobs"})
147
+
148
+
149
+ def standalone_violations(source: str, filename: str = "<catalog>") -> list[str]:
150
+ """Why ``source`` is not a standalone catalog file (empty = stdlib + torch only).
151
+
152
+ Flags imports outside the standard library and ``torch``, relative imports
153
+ and framework decorators (``@presets`` / ``@budget_knobs`` ...).
154
+ """
155
+ import ast
156
+ import sys
157
+
158
+ from topologies.validation.source_style import comment_and_docstring_violations
159
+
160
+ allowed = set(sys.stdlib_module_names) | {"torch", "__future__"}
161
+ out: list[str] = []
162
+ from topologies.validation.implementation import discarded_algorithm_classes
163
+
164
+ out.extend(f"{filename}: {name}.forward discards its algorithm by multiplying it by zero"
165
+ for name in discarded_algorithm_classes(source))
166
+ out.extend(f"{filename}:{problem}" for problem in
167
+ comment_and_docstring_violations(source, filename))
168
+ for node in ast.walk(ast.parse(source, filename)):
169
+ if isinstance(node, ast.Import):
170
+ mods = [(a.name, node.lineno) for a in node.names]
171
+ elif isinstance(node, ast.ImportFrom):
172
+ if node.level:
173
+ out.append(f"{filename}:{node.lineno}: relative import "
174
+ f"'{'.' * node.level}{node.module or ''}'")
175
+ continue
176
+ mods = [(node.module or "", node.lineno)]
177
+ elif isinstance(node, (ast.ClassDef, ast.FunctionDef)):
178
+ for d in node.decorator_list:
179
+ target = d.func if isinstance(d, ast.Call) else d
180
+ name = target.attr if isinstance(target, ast.Attribute) else \
181
+ getattr(target, "id", "")
182
+ if name in FRAMEWORK_DECORATORS:
183
+ out.append(f"{filename}:{d.lineno}: framework decorator @{name}")
184
+ continue
185
+ else:
186
+ continue
187
+ for mod, line in mods:
188
+ if mod.split(".")[0] not in allowed:
189
+ out.append(f"{filename}:{line}: import of {mod!r} (stdlib + torch only)")
190
+ return out
191
+
192
+
193
+ def registry_mismatches(index: Any) -> list[str]:
194
+ """Problems between registry records and the scanned catalog (empty = consistent).
195
+
196
+ ``index`` is a ``RegistryIndex`` (``Registry.load().index``).
197
+
198
+ Checks every registry record pointing into ``topologies.models`` /
199
+ ``topologies.layers``: the module imports, the class exists, is an
200
+ ``nn.Module``, and its ``architecture_id`` / ``component_id`` equals the
201
+ registry id; and every scanned catalog class has a registry record.
202
+ """
203
+ import torch.nn as nn
204
+
205
+ problems: list[str] = []
206
+ seen: dict[str, set[str]] = {k: set() for k in KINDS}
207
+ for rec in index.records:
208
+ mod = rec.module_path or ""
209
+ kind = next((k for k, (pkg, _) in KINDS.items() if mod.startswith(pkg + ".")), None)
210
+ if kind is None:
211
+ continue
212
+ attr = KINDS[kind][1]
213
+ try:
214
+ cls = getattr(importlib.import_module(mod), rec.class_name)
215
+ except Exception as e: # noqa: BLE001
216
+ problems.append(f"{rec.id}: cannot import {mod}:{rec.class_name} ({e})")
217
+ continue
218
+ if not (isinstance(cls, type) and issubclass(cls, nn.Module)):
219
+ problems.append(f"{rec.id}: {mod}:{rec.class_name} is not an nn.Module subclass")
220
+ if getattr(cls, attr, None) != rec.id:
221
+ problems.append(f"{rec.id}: {rec.class_name}.{attr} is "
222
+ f"{getattr(cls, attr, None)!r}, expected {rec.id!r}")
223
+ entry = entries(kind).get(rec.class_name)
224
+ if entry is None or entry.module != mod:
225
+ problems.append(f"{rec.id}: {mod}:{rec.class_name} not found by catalog discovery")
226
+ seen[kind].add(rec.class_name)
227
+ for kind in KINDS:
228
+ for name, e in entries(kind).items():
229
+ if name not in seen[kind]:
230
+ problems.append(f"{e.id}: {e.module}:{name} has no registry record")
231
+ path = Path(importlib.import_module(KINDS[kind][0]).__path__[0])
232
+ source = (path / f"{e.module.rsplit('.', 1)[1]}.py").read_text(encoding="utf-8")
233
+ problems += [f"{e.id}: {v}" for v in standalone_violations(source, e.module)]
234
+ return problems
235
+
236
+
237
+ # ---------------------------------------------------------------- package API
238
+
239
+
240
+ def _deprecated_base(name: str) -> Any:
241
+ warnings.warn(
242
+ f"{name} is deprecated: catalog classes subclass torch.nn.Module directly. "
243
+ "Use topologies.build.Configurable for automatic constructor recording.",
244
+ DeprecationWarning, stacklevel=3)
245
+ from topologies import _compat
246
+
247
+ return getattr(_compat, name)
248
+
249
+
250
+ def _make_namespace(kind: str, module: Any) -> None:
251
+ plural = f"{kind}s"
252
+ compat = "TopologiesModel" if kind == "model" else "TopologiesLayer"
253
+
254
+ def list_fn(*, include_demo: bool = True) -> list[dict[str, Any]]:
255
+ return list_entries(kind, include_demo=include_demo)
256
+
257
+ def get_fn(key: str) -> type:
258
+ return get(kind, key)
259
+
260
+ list_fn.__name__ = list_fn.__qualname__ = f"list_{plural}"
261
+ list_fn.__doc__ = f'``[{{"name", "id", "module", "is_demo"}}, ...]`` for every catalog {kind}.'
262
+ get_fn.__name__ = get_fn.__qualname__ = f"get_{kind}"
263
+ get_fn.__doc__ = f"Catalog {kind} class by class name, registry id or module name."
264
+ for fn in (list_fn, get_fn):
265
+ fn.__module__ = module.__name__
266
+
267
+ def __getattr__(name: str) -> Any:
268
+ if name == "__all__":
269
+ return [f"get_{kind}", f"list_{plural}", *sorted(entries(kind))]
270
+ if name == compat:
271
+ return _deprecated_base(name)
272
+ entry = entries(kind).get(name)
273
+ if entry is None:
274
+ raise AttributeError(f"module {module.__name__!r} has no attribute {name!r}")
275
+ cls = entry.load()
276
+ setattr(module, name, cls)
277
+ return cls
278
+
279
+ def __dir__() -> list[str]:
280
+ return sorted(set(vars(module)) | set(__getattr__("__all__")))
281
+
282
+ setattr(module, f"list_{plural}", list_fn)
283
+ setattr(module, f"get_{kind}", get_fn)
284
+ module.__getattr__ = __getattr__
285
+ module.__dir__ = __dir__
286
+
287
+
288
+ def install() -> None:
289
+ """Attach the catalog API to ``topologies.models`` and ``topologies.layers``."""
290
+ for kind, (package, _) in KINDS.items():
291
+ module = importlib.import_module(package)
292
+ if not hasattr(module, f"get_{kind}"):
293
+ _make_namespace(kind, module)
topologies/_compat.py ADDED
@@ -0,0 +1,27 @@
1
+ """Deprecated base classes kept for external code written against older releases.
2
+
3
+ Catalog classes (``topologies.models`` / ``topologies.layers``) subclass
4
+ ``torch.nn.Module`` directly and never import ``topologies``; nothing in the
5
+ framework requires these bases. Reach them as ``topologies.models.TopologiesModel``
6
+ / ``topologies.layers.TopologiesLayer`` (emits ``DeprecationWarning``).
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import torch.nn as nn
12
+
13
+ from topologies.build.config import Configurable
14
+
15
+
16
+ class TopologiesModel(Configurable, nn.Module):
17
+ """Deprecated: subclass ``nn.Module`` (plus ``Configurable`` if wanted)."""
18
+
19
+ architecture_id: str = ""
20
+ is_demo: bool = False
21
+
22
+
23
+ class TopologiesLayer(nn.Module):
24
+ """Deprecated: subclass ``nn.Module``."""
25
+
26
+ component_id: str = ""
27
+ is_demo: bool = False
@@ -0,0 +1,178 @@
1
+ """Shared explicit model-call, recursive transfer, and execution lifecycle helpers."""
2
+ from __future__ import annotations
3
+
4
+ import random
5
+ import sys
6
+ from collections.abc import Iterator, Mapping
7
+ from contextlib import contextmanager, nullcontext
8
+ from dataclasses import dataclass, field
9
+ from typing import Any, Literal
10
+
11
+ import torch
12
+
13
+ _TRANSFER_HANDLERS: dict[type, Any] = {}
14
+
15
+
16
+ def register_transfer_handler(container_type: type, handler: Any) -> None:
17
+ """Register reconstruction handler ``handler(value, transfer_leaf)``."""
18
+ if not isinstance(container_type, type) or not callable(handler):
19
+ raise TypeError("container_type must be a type and handler callable")
20
+ if container_type in _TRANSFER_HANDLERS:
21
+ raise ValueError(f"Transfer handler already registered for {container_type!r}")
22
+ _TRANSFER_HANDLERS[container_type] = handler
23
+
24
+
25
+ @dataclass
26
+ class ModelCall:
27
+ """An unambiguous invocation; a raw tensor is represented as one positional arg."""
28
+
29
+ args: tuple[Any, ...] = ()
30
+ kwargs: dict[str, Any] = field(default_factory=dict)
31
+
32
+
33
+ def transfer(value: Any, device: str | torch.device, *, non_blocking: bool = False,
34
+ _path: str = "input") -> Any:
35
+ """Recursively transfer tensor leaves; never silently leave failed tensors behind."""
36
+ if isinstance(value, torch.Tensor):
37
+ try:
38
+ return value.to(device, non_blocking=non_blocking)
39
+ except Exception as exc:
40
+ raise RuntimeError(f"Tensor transfer failed at {_path}: {exc}") from exc
41
+ for container_type, handler in _TRANSFER_HANDLERS.items():
42
+ if isinstance(value, container_type):
43
+ try:
44
+ return handler(value, lambda child, suffix="item": transfer(
45
+ child, device, non_blocking=non_blocking, _path=f"{_path}.{suffix}"))
46
+ except Exception as exc:
47
+ raise RuntimeError(f"Container transfer failed at {_path}: {exc}") from exc
48
+ if isinstance(value, Mapping):
49
+ pairs = ((k, transfer(v, device, non_blocking=non_blocking, _path=f"{_path}.{k}"))
50
+ for k, v in value.items())
51
+ try:
52
+ return type(value)(pairs)
53
+ except Exception as exc:
54
+ raise RuntimeError(f"Container reconstruction failed at {_path}: {exc}") from exc
55
+ if isinstance(value, tuple) and hasattr(value, "_fields"):
56
+ return type(value)(*(transfer(v, device, non_blocking=non_blocking,
57
+ _path=f"{_path}.{name}")
58
+ for name, v in zip(value._fields, value)))
59
+ if isinstance(value, tuple):
60
+ return tuple(transfer(v, device, non_blocking=non_blocking, _path=f"{_path}[{i}]")
61
+ for i, v in enumerate(value))
62
+ if isinstance(value, list):
63
+ return [transfer(v, device, non_blocking=non_blocking, _path=f"{_path}[{i}]")
64
+ for i, v in enumerate(value)]
65
+ return value
66
+
67
+
68
+ @contextmanager
69
+ def execution_rng(*, preserve_rng: bool = True, seed: int | None = None) -> Iterator[None]:
70
+ """Preserve framework/Python/loaded-NumPy RNG state and optionally seed a scoped execution.
71
+
72
+ NumPy is inspected only in ``sys.modules`` so this helper does not make an
73
+ optional dependency eager. Explicit seeds use NumPy-compatible uint32 range.
74
+ A supplied seed always restores the caller's streams, even when preservation
75
+ is otherwise disabled.
76
+ """
77
+ if seed is not None and (isinstance(seed, bool) or not isinstance(seed, int) or
78
+ not 0 <= seed <= 0xFFFFFFFF):
79
+ raise ValueError("seed must be an integer in [0, 2**32 - 1]")
80
+ restore = preserve_rng or seed is not None
81
+ devices = list(range(torch.cuda.device_count())) if restore and torch.cuda.is_available() else []
82
+ rng_context = torch.random.fork_rng(devices=devices, enabled=restore)
83
+ python_state = random.getstate() if restore else None
84
+ numpy = sys.modules.get("numpy")
85
+ numpy_state = numpy.random.get_state() if restore and numpy is not None else None
86
+ try:
87
+ with rng_context:
88
+ if seed is not None:
89
+ torch.manual_seed(seed)
90
+ if torch.cuda.is_available():
91
+ torch.cuda.manual_seed_all(seed)
92
+ random.seed(seed)
93
+ if numpy is not None:
94
+ numpy.random.seed(seed)
95
+ yield
96
+ finally:
97
+ if python_state is not None:
98
+ random.setstate(python_state)
99
+ if numpy_state is not None:
100
+ numpy.random.set_state(numpy_state)
101
+
102
+
103
+ GradMode = Literal["inference", "no_grad", "enable", "unchanged"]
104
+ _GRAD_MODES: dict[str, Any] = {
105
+ "inference": torch.inference_mode,
106
+ "no_grad": torch.no_grad,
107
+ "enable": torch.enable_grad,
108
+ "unchanged": nullcontext,
109
+ }
110
+
111
+
112
+ @contextmanager
113
+ def model_execution(model: Any, *, training: bool = False, inference: bool = True,
114
+ preserve_rng: bool = True, seed: int | None = None,
115
+ grad_mode: GradMode | None = None) -> Iterator[None]:
116
+ """Set mode and grad policy, restoring every submodule's mode even on exceptions.
117
+
118
+ ``grad_mode``: ``"inference"`` (``torch.inference_mode``; outputs can never
119
+ join autograd), ``"no_grad"`` (outputs stay usable as autograd inputs),
120
+ ``"enable"`` or ``"unchanged"`` (leave the caller's grad mode alone, e.g.
121
+ for generators that yield while suspended). Default: ``"inference"`` when
122
+ ``inference`` else ``"enable"``.
123
+ """
124
+ mode = grad_mode or ("inference" if inference else "enable")
125
+ if mode not in _GRAD_MODES:
126
+ raise ValueError(f"grad_mode must be one of {sorted(_GRAD_MODES)}, got {mode!r}")
127
+ modules = list(model.modules()) if callable(getattr(model, "modules", None)) else []
128
+ flags = [module.training for module in modules]
129
+ try:
130
+ with execution_rng(preserve_rng=preserve_rng, seed=seed):
131
+ if modules:
132
+ model.train(training)
133
+ with _GRAD_MODES[mode]():
134
+ yield
135
+ finally:
136
+ for module, flag in zip(modules, flags):
137
+ module.training = flag
138
+
139
+
140
+ def _tensors_depth_first(value: Any) -> Iterator[torch.Tensor]:
141
+ if isinstance(value, torch.Tensor):
142
+ yield value
143
+ elif isinstance(value, Mapping):
144
+ for item in value.values():
145
+ yield from _tensors_depth_first(item)
146
+ elif isinstance(value, (tuple, list)):
147
+ for item in value:
148
+ yield from _tensors_depth_first(item)
149
+
150
+
151
+ def primary_output(out: Any, *, prefer: str | None = "logits", floating: bool = False,
152
+ strict: bool = True) -> Any:
153
+ """The primary tensor of a model output (one rule for every call site).
154
+
155
+ A tensor is returned as is. A mapping yields its ``prefer`` key when present
156
+ (``"logits"`` by default), otherwise its values in order; tuples/lists are
157
+ searched depth-first for the first tensor (the first floating-point tensor
158
+ when ``floating``). With ``strict=False`` an output without a matching
159
+ tensor is returned unchanged (sequences: their first element) instead of
160
+ raising ``TypeError``.
161
+ """
162
+ if isinstance(out, torch.Tensor):
163
+ return out
164
+ candidate = out
165
+ if isinstance(out, Mapping) and prefer is not None and prefer in out:
166
+ candidate = out[prefer]
167
+ if isinstance(candidate, torch.Tensor):
168
+ return candidate
169
+ for tensor in _tensors_depth_first(candidate):
170
+ if not floating or tensor.is_floating_point():
171
+ return tensor
172
+ if not strict:
173
+ if isinstance(out, (tuple, list)) and out:
174
+ return out[0]
175
+ return out
176
+ raise TypeError(f"Model returned {type(out).__name__} without a "
177
+ f"{'floating-point ' if floating else ''}tensor output.")
178
+
@@ -0,0 +1 @@
1
+ """Small shared internals (filesystem, JSON, suggestions, seeding). Not public API."""