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.
- topologies/.training-generated-manifest.json +35 -0
- topologies/.training-materialized-manifest.json +35 -0
- topologies/__init__.py +89 -0
- topologies/_catalog.py +293 -0
- topologies/_compat.py +27 -0
- topologies/_execution.py +178 -0
- topologies/_util/__init__.py +1 -0
- topologies/_util/fs.py +98 -0
- topologies/_util/jsonsafe.py +42 -0
- topologies/_util/seed.py +19 -0
- topologies/_util/suggest.py +26 -0
- topologies/analysis/__init__.py +102 -0
- topologies/analysis/core.py +448 -0
- topologies/analysis/decode.py +186 -0
- topologies/analysis/engineering.py +878 -0
- topologies/analysis/integrations.py +70 -0
- topologies/analysis/profiling.py +122 -0
- topologies/analysis/records.py +123 -0
- topologies/analysis/statistics.py +211 -0
- topologies/analysis/visualization.py +135 -0
- topologies/artifact_store/__init__.py +31 -0
- topologies/artifact_store/client.py +402 -0
- topologies/artifact_store/exceptions.py +21 -0
- topologies/build/__init__.py +93 -0
- topologies/build/api.py +111 -0
- topologies/build/audit.py +103 -0
- topologies/build/budget.py +212 -0
- topologies/build/catalog.py +202 -0
- topologies/build/config.py +246 -0
- topologies/build/contract.py +85 -0
- topologies/build/params.py +92 -0
- topologies/build/presets.py +100 -0
- topologies/build/validation.py +75 -0
- topologies/catalog/losses/a2c.json +1 -0
- topologies/catalog/losses/adversarial-hinge.json +9 -0
- topologies/catalog/losses/binary-cross-entropy-logits.json +1 -0
- topologies/catalog/losses/bpr.json +9 -0
- topologies/catalog/losses/cross-entropy.json +1 -0
- topologies/catalog/losses/ctc.json +9 -0
- topologies/catalog/losses/density-nll.json +9 -0
- topologies/catalog/losses/dice.json +1 -0
- topologies/catalog/losses/gaussian-kl.json +1 -0
- topologies/catalog/losses/gaussian-nll.json +9 -0
- topologies/catalog/losses/generalized-iou.json +10 -0
- topologies/catalog/losses/huber.json +1 -0
- topologies/catalog/losses/info-nce.json +9 -0
- topologies/catalog/losses/mean-absolute-error.json +1 -0
- topologies/catalog/losses/mean-squared-error.json +1 -0
- topologies/catalog/losses/multi-resolution-stft.json +9 -0
- topologies/catalog/losses/pinball.json +9 -0
- topologies/catalog/losses/poly1-loss.json +1 -0
- topologies/catalog/losses/si-sdr.json +9 -0
- topologies/catalog/losses/sigmoid-focal.json +9 -0
- topologies/catalog/losses/smooth-l1.json +9 -0
- topologies/catalog/losses/softmax-focal.json +9 -0
- topologies/catalog/losses/triplet-margin.json +9 -0
- topologies/catalog/optimizers/adabelief.json +1 -0
- topologies/catalog/optimizers/adafactor.json +1 -0
- topologies/catalog/optimizers/adagrad.json +9 -0
- topologies/catalog/optimizers/adahessian.json +1 -0
- topologies/catalog/optimizers/adam-8bit.json +1 -0
- topologies/catalog/optimizers/adam-mini.json +1 -0
- topologies/catalog/optimizers/adam.json +1 -0
- topologies/catalog/optimizers/adamw.json +1 -0
- topologies/catalog/optimizers/ademamix.json +1 -0
- topologies/catalog/optimizers/asam.json +1 -0
- topologies/catalog/optimizers/ema.json +1 -0
- topologies/catalog/optimizers/fadam.json +1 -0
- topologies/catalog/optimizers/fisher-sam.json +1 -0
- topologies/catalog/optimizers/flora.json +1 -0
- topologies/catalog/optimizers/galore.json +1 -0
- topologies/catalog/optimizers/grokfast.json +1 -0
- topologies/catalog/optimizers/gsam.json +1 -0
- topologies/catalog/optimizers/kfac.json +1 -0
- topologies/catalog/optimizers/lamb.json +1 -0
- topologies/catalog/optimizers/lars.json +1 -0
- topologies/catalog/optimizers/lion.json +1 -0
- topologies/catalog/optimizers/lookahead.json +1 -0
- topologies/catalog/optimizers/model-soup.json +1 -0
- topologies/catalog/optimizers/muon.json +1 -0
- topologies/catalog/optimizers/novograd.json +1 -0
- topologies/catalog/optimizers/polynomial-decay.json +1 -0
- topologies/catalog/optimizers/qlora.json +1 -0
- topologies/catalog/optimizers/radam.json +1 -0
- topologies/catalog/optimizers/relora.json +1 -0
- topologies/catalog/optimizers/rmsprop.json +9 -0
- topologies/catalog/optimizers/sam.json +1 -0
- topologies/catalog/optimizers/schedule-free.json +1 -0
- topologies/catalog/optimizers/sgd.json +1 -0
- topologies/catalog/optimizers/shampoo.json +1 -0
- topologies/catalog/optimizers/sm3.json +1 -0
- topologies/catalog/optimizers/soap.json +1 -0
- topologies/catalog/optimizers/sophia.json +1 -0
- topologies/catalog/optimizers/swa.json +1 -0
- topologies/catalog/optimizers/swad.json +1 -0
- topologies/catalog/optimizers/swalp.json +1 -0
- topologies/catalog/optimizers/twa.json +1 -0
- topologies/catalog/schedulers/clr.json +1 -0
- topologies/catalog/schedulers/cooldown.json +1 -0
- topologies/catalog/schedulers/cosine-min.json +1 -0
- topologies/catalog/schedulers/cosine-restarts.json +1 -0
- topologies/catalog/schedulers/exponential.json +19 -0
- topologies/catalog/schedulers/grafted.json +1 -0
- topologies/catalog/schedulers/multistep.json +1 -0
- topologies/catalog/schedulers/noam.json +21 -0
- topologies/catalog/schedulers/onecycle.json +1 -0
- topologies/catalog/schedulers/reduce-on-plateau.json +1 -0
- topologies/catalog/schedulers/sgdr.json +1 -0
- topologies/catalog/schedulers/trapezoidal.json +21 -0
- topologies/catalog/schedulers/warmup-linear.json +1 -0
- topologies/catalog/schedulers/wsd.json +1 -0
- topologies/catalog/stability/activation-offload.json +1 -0
- topologies/catalog/stability/bf16-recipe.json +14 -0
- topologies/catalog/stability/compile-parity.json +4 -0
- topologies/catalog/stability/fsdp-wrap.json +17 -0
- topologies/catalog/stability/grad-checkpoint.json +1 -0
- topologies/catalog/stability/grad-clip.json +17 -0
- topologies/catalog/stability/llrd.json +18 -0
- topologies/catalog/stability/loss-scale.json +17 -0
- topologies/catalog/stability/nan-skip.json +1 -0
- topologies/catalog/stability/zero-partition.json +1 -0
- topologies/cli.py +294 -0
- topologies/data/__init__.py +85 -0
- topologies/data/adapters.py +162 -0
- topologies/data/collate.py +96 -0
- topologies/data/corpus.py +263 -0
- topologies/data/datasets.py +53 -0
- topologies/data/download.py +204 -0
- topologies/data/event_codec.py +62 -0
- topologies/data/integrations/__init__.py +24 -0
- topologies/data/integrations/karate.py +68 -0
- topologies/data/integrations/local.py +345 -0
- topologies/data/loaders.py +71 -0
- topologies/data/preprocessing.py +188 -0
- topologies/data/profiling.py +341 -0
- topologies/data/samplers.py +32 -0
- topologies/data/splits.py +158 -0
- topologies/data/stream.py +313 -0
- topologies/data/text.py +212 -0
- topologies/data/windows.py +90 -0
- topologies/datasets/.dataset-catalog-generated-manifest.json +6 -0
- topologies/datasets/__init__.py +25 -0
- topologies/datasets/api.py +101 -0
- topologies/datasets/artifacts.lock.json +5332 -0
- topologies/datasets/catalog.json +17755 -0
- topologies/datasets/core.py +511 -0
- topologies/datasets/integrations/.dataset-generated-manifest.json +21 -0
- topologies/datasets/integrations/__init__.py +1 -0
- topologies/datasets/integrations/ag_news/__init__.py +22 -0
- topologies/datasets/integrations/cifar10/__init__.py +55 -0
- topologies/datasets/integrations/cora/__init__.py +36 -0
- topologies/datasets/integrations/fashion_mnist/__init__.py +18 -0
- topologies/datasets/integrations/fsdd/__init__.py +54 -0
- topologies/datasets/integrations/iris/__init__.py +80 -0
- topologies/datasets/integrations/jena_climate/__init__.py +59 -0
- topologies/datasets/integrations/mnist/__init__.py +18 -0
- topologies/datasets/integrations/movielens_100k/__init__.py +43 -0
- topologies/datasets/integrations/oxford_iiit_pet/__init__.py +52 -0
- topologies/datasets/integrations/palmer_penguins/__init__.py +46 -0
- topologies/datasets/integrations/penn_fudan_pedestrians/__init__.py +52 -0
- topologies/datasets/integrations/speech_commands/__init__.py +41 -0
- topologies/datasets/integrations/uci_har/__init__.py +27 -0
- topologies/datasets/integrations/wikitext_2_raw/__init__.py +44 -0
- topologies/datasets/records/1000-genomes.json +13 -0
- topologies/datasets/records/2wikimultihopqa.json +12 -0
- topologies/datasets/records/3dpw.json +12 -0
- topologies/datasets/records/abo.json +12 -0
- topologies/datasets/records/acdc.json +13 -0
- topologies/datasets/records/activitynet-captions.json +13 -0
- topologies/datasets/records/activitynet.json +12 -0
- topologies/datasets/records/ade20k.json +13 -0
- topologies/datasets/records/adni.json +13 -0
- topologies/datasets/records/adroit.json +13 -0
- topologies/datasets/records/adult.json +13 -0
- topologies/datasets/records/aerorit.json +13 -0
- topologies/datasets/records/agora.json +12 -0
- topologies/datasets/records/aishell.json +12 -0
- topologies/datasets/records/ali-ccp.json +17 -0
- topologies/datasets/records/alimama.json +13 -0
- topologies/datasets/records/alpaca.json +13 -0
- topologies/datasets/records/amass.json +13 -0
- topologies/datasets/records/amazon-2018.json +13 -0
- topologies/datasets/records/amazon-2023.json +13 -0
- topologies/datasets/records/amazon-computers.json +13 -0
- topologies/datasets/records/ami.json +13 -0
- topologies/datasets/records/amos.json +13 -0
- topologies/datasets/records/amos22.json +13 -0
- topologies/datasets/records/anli.json +12 -0
- topologies/datasets/records/anuraset.json +13 -0
- topologies/datasets/records/apps.json +12 -0
- topologies/datasets/records/aptos.json +13 -0
- topologies/datasets/records/arc.json +13 -0
- topologies/datasets/records/argoverse-2.json +13 -0
- topologies/datasets/records/arkit-scenes.json +12 -0
- topologies/datasets/records/arxiv-pubmed-sum.json +12 -0
- topologies/datasets/records/ashrae-gepiii.json +13 -0
- topologies/datasets/records/asvspoof-2019.json +13 -0
- topologies/datasets/records/atari-100k.json +13 -0
- topologies/datasets/records/audiocaps.json +13 -0
- topologies/datasets/records/audioset.json +13 -0
- topologies/datasets/records/ava.json +13 -0
- topologies/datasets/records/avazu.json +13 -0
- topologies/datasets/records/avenue.json +13 -0
- topologies/datasets/records/babyai.json +13 -0
- topologies/datasets/records/bach.json +13 -0
- topologies/datasets/records/bank-marketing.json +13 -0
- topologies/datasets/records/bbbc.json +13 -0
- topologies/datasets/records/bbh.json +13 -0
- topologies/datasets/records/bbq.json +12 -0
- topologies/datasets/records/bdd100k.json +12 -0
- topologies/datasets/records/beans.json +13 -0
- topologies/datasets/records/bigearthnet.json +13 -0
- topologies/datasets/records/bijie.json +13 -0
- topologies/datasets/records/billion-word.json +12 -0
- topologies/datasets/records/bindingdb.json +13 -0
- topologies/datasets/records/birdclef.json +13 -0
- topologies/datasets/records/birdset.json +13 -0
- topologies/datasets/records/ble-aoa.json +13 -0
- topologies/datasets/records/blendedmvs.json +12 -0
- topologies/datasets/records/bobsl.json +13 -0
- topologies/datasets/records/book-crossing.json +12 -0
- topologies/datasets/records/brats.json +13 -0
- topologies/datasets/records/breakhis.json +13 -0
- topologies/datasets/records/btad.json +13 -0
- topologies/datasets/records/btcv.json +13 -0
- topologies/datasets/records/c4.json +13 -0
- topologies/datasets/records/california-housing.json +12 -0
- topologies/datasets/records/caltech-101.json +12 -0
- topologies/datasets/records/camelyon-16.json +13 -0
- topologies/datasets/records/camelyon-17.json +13 -0
- topologies/datasets/records/camelyon.json +13 -0
- topologies/datasets/records/camus.json +13 -0
- topologies/datasets/records/camvid.json +12 -0
- topologies/datasets/records/caselaw-hold.json +13 -0
- topologies/datasets/records/casia-splicing.json +13 -0
- topologies/datasets/records/casia-v2.json +13 -0
- topologies/datasets/records/casia-webface.json +12 -0
- topologies/datasets/records/cassava-leaf.json +13 -0
- topologies/datasets/records/cassava.json +13 -0
- topologies/datasets/records/cc3m.json +13 -0
- topologies/datasets/records/ccmatrix.json +12 -0
- topologies/datasets/records/ccpg.json +13 -0
- topologies/datasets/records/celeba-spurious.json +13 -0
- topologies/datasets/records/celeba.json +12 -0
- topologies/datasets/records/census.json +13 -0
- topologies/datasets/records/chaos.json +13 -0
- topologies/datasets/records/charades.json +12 -0
- topologies/datasets/records/chembl-33.json +13 -0
- topologies/datasets/records/chestxray14.json +13 -0
- topologies/datasets/records/chexpert.json +11 -0
- topologies/datasets/records/chime-4.json +13 -0
- topologies/datasets/records/chime-6.json +13 -0
- topologies/datasets/records/chime-frb.json +13 -0
- topologies/datasets/records/cholec-t50.json +13 -0
- topologies/datasets/records/cholec80.json +13 -0
- topologies/datasets/records/cholecseg8k.json +13 -0
- topologies/datasets/records/cifar-10.1.json +12 -0
- topologies/datasets/records/cifar-100.json +13 -0
- topologies/datasets/records/cinic-10.json +13 -0
- topologies/datasets/records/citeseer.json +13 -0
- topologies/datasets/records/cityscapes.json +13 -0
- topologies/datasets/records/climsim.json +13 -0
- topologies/datasets/records/clotho.json +13 -0
- topologies/datasets/records/cmapss.json +13 -0
- topologies/datasets/records/cnn-dailymail.json +13 -0
- topologies/datasets/records/co3d.json +12 -0
- topologies/datasets/records/coauthor-cs.json +12 -0
- topologies/datasets/records/coco-2017.json +13 -0
- topologies/datasets/records/coco-captions.json +13 -0
- topologies/datasets/records/coco-pose.json +13 -0
- topologies/datasets/records/codecontests.json +12 -0
- topologies/datasets/records/codex.json +13 -0
- topologies/datasets/records/common-voice.json +13 -0
- topologies/datasets/records/compas.json +13 -0
- topologies/datasets/records/compcars.json +12 -0
- topologies/datasets/records/conceptual-12m.json +13 -0
- topologies/datasets/records/coqa.json +13 -0
- topologies/datasets/records/cora.json +13 -0
- topologies/datasets/records/cord.json +13 -0
- topologies/datasets/records/covertype.json +13 -0
- topologies/datasets/records/coyo-700m.json +13 -0
- topologies/datasets/records/crafter.json +13 -0
- topologies/datasets/records/crema-d.json +12 -0
- topologies/datasets/records/cremi.json +13 -0
- topologies/datasets/records/criteo.json +13 -0
- topologies/datasets/records/crowdhuman.json +12 -0
- topologies/datasets/records/crowdpose.json +12 -0
- topologies/datasets/records/csl-daily.json +13 -0
- topologies/datasets/records/ctw1500.json +13 -0
- topologies/datasets/records/cuad.json +13 -0
- topologies/datasets/records/cub-200.json +13 -0
- topologies/datasets/records/cuhk03.json +12 -0
- topologies/datasets/records/cwru.json +13 -0
- topologies/datasets/records/d4rl.json +13 -0
- topologies/datasets/records/dagm.json +13 -0
- topologies/datasets/records/dailydialog.json +13 -0
- topologies/datasets/records/dancetrack.json +13 -0
- topologies/datasets/records/datacomp-1b.json +13 -0
- topologies/datasets/records/davis.json +13 -0
- topologies/datasets/records/dcase.json +13 -0
- topologies/datasets/records/dclde.json +13 -0
- topologies/datasets/records/deeperforensics.json +13 -0
- topologies/datasets/records/deepglobe.json +13 -0
- topologies/datasets/records/deeppcb.json +13 -0
- topologies/datasets/records/didemo.json +13 -0
- topologies/datasets/records/diii-d.json +13 -0
- topologies/datasets/records/dmc.json +13 -0
- topologies/datasets/records/dns-challenge.json +13 -0
- topologies/datasets/records/docvqa.json +13 -0
- topologies/datasets/records/dolly.json +13 -0
- topologies/datasets/records/dolma.json +13 -0
- topologies/datasets/records/domainnet.json +13 -0
- topologies/datasets/records/dota.json +13 -0
- topologies/datasets/records/drop.json +12 -0
- topologies/datasets/records/ds-1000.json +12 -0
- topologies/datasets/records/dsb-2018.json +13 -0
- topologies/datasets/records/dsec-flow.json +13 -0
- topologies/datasets/records/dtd.json +13 -0
- topologies/datasets/records/duacs-aviso.json +13 -0
- topologies/datasets/records/duacs.json +13 -0
- topologies/datasets/records/dud-e.json +13 -0
- topologies/datasets/records/dude.json +13 -0
- topologies/datasets/records/dvs-cifar10.json +13 -0
- topologies/datasets/records/dvs-gesture.json +13 -0
- topologies/datasets/records/dycheck.json +13 -0
- topologies/datasets/records/earnings-22.json +12 -0
- topologies/datasets/records/ego4d.json +12 -0
- topologies/datasets/records/eicu-crd.json +13 -0
- topologies/datasets/records/electricity.json +13 -0
- topologies/datasets/records/elliptic.json +12 -0
- topologies/datasets/records/elpv.json +13 -0
- topologies/datasets/records/emnist.json +13 -0
- topologies/datasets/records/endovis.json +13 -0
- topologies/datasets/records/enose.json +13 -0
- topologies/datasets/records/epic-kitchens-100.json +12 -0
- topologies/datasets/records/epinions.json +13 -0
- topologies/datasets/records/eqa.json +13 -0
- topologies/datasets/records/era5.json +13 -0
- topologies/datasets/records/esc-50.json +13 -0
- topologies/datasets/records/esd.json +12 -0
- topologies/datasets/records/eth3d.json +13 -0
- topologies/datasets/records/ett.json +13 -0
- topologies/datasets/records/europarl.json +12 -0
- topologies/datasets/records/eurosat.json +13 -0
- topologies/datasets/records/exchange.json +13 -0
- topologies/datasets/records/extrasensory.json +13 -0
- topologies/datasets/records/fair1m.json +13 -0
- topologies/datasets/records/fashioniq.json +13 -0
- topologies/datasets/records/fedscale.json +13 -0
- topologies/datasets/records/femto-pronostia.json +13 -0
- topologies/datasets/records/fever.json +12 -0
- topologies/datasets/records/ffhq.json +12 -0
- topologies/datasets/records/fgvc-aircraft.json +13 -0
- topologies/datasets/records/fineweb-edu.json +13 -0
- topologies/datasets/records/fineweb.json +13 -0
- topologies/datasets/records/fintabnet.json +13 -0
- topologies/datasets/records/fiqa-2018.json +13 -0
- topologies/datasets/records/flan.json +12 -0
- topologies/datasets/records/flchain.json +13 -0
- topologies/datasets/records/fleurs.json +12 -0
- topologies/datasets/records/flickr30k-entities.json +12 -0
- topologies/datasets/records/flickr30k.json +13 -0
- topologies/datasets/records/floodnet.json +13 -0
- topologies/datasets/records/flores-200.json +13 -0
- topologies/datasets/records/flyingchairs.json +13 -0
- topologies/datasets/records/fma.json +13 -0
- topologies/datasets/records/fmd.json +12 -0
- topologies/datasets/records/fmow.json +13 -0
- topologies/datasets/records/food-101.json +13 -0
- topologies/datasets/records/forgerynet.json +13 -0
- topologies/datasets/records/foursquare.json +13 -0
- topologies/datasets/records/franka-kitchen.json +13 -0
- topologies/datasets/records/fraud-ieee.json +13 -0
- topologies/datasets/records/freihand.json +12 -0
- topologies/datasets/records/fsd50k.json +12 -0
- topologies/datasets/records/fsdnoisy18k.json +12 -0
- topologies/datasets/records/funsd.json +13 -0
- topologies/datasets/records/gages-ii.json +13 -0
- topologies/datasets/records/gait3d.json +13 -0
- topologies/datasets/records/gbsg2.json +13 -0
- topologies/datasets/records/gefcom2014.json +13 -0
- topologies/datasets/records/gelsight-wedge.json +13 -0
- topologies/datasets/records/german-credit.json +13 -0
- topologies/datasets/records/gigaspeech.json +13 -0
- topologies/datasets/records/gigaword.json +12 -0
- topologies/datasets/records/glue.json +13 -0
- topologies/datasets/records/goodreads.json +13 -0
- topologies/datasets/records/got-10k.json +13 -0
- topologies/datasets/records/gowalla.json +13 -0
- topologies/datasets/records/gqa.json +13 -0
- topologies/datasets/records/grew.json +13 -0
- topologies/datasets/records/grf.json +13 -0
- topologies/datasets/records/gsm8k.json +13 -0
- topologies/datasets/records/gtzan.json +13 -0
- topologies/datasets/records/gwosc.json +13 -0
- topologies/datasets/records/hacs.json +12 -0
- topologies/datasets/records/hellaswag.json +13 -0
- topologies/datasets/records/hepmass.json +13 -0
- topologies/datasets/records/hgb.json +12 -0
- topologies/datasets/records/higgs.json +13 -0
- topologies/datasets/records/hirid.json +13 -0
- topologies/datasets/records/hm3d.json +12 -0
- topologies/datasets/records/hmdb51.json +13 -0
- topologies/datasets/records/home-credit-default-risk.json +13 -0
- topologies/datasets/records/hotpotqa.json +12 -0
- topologies/datasets/records/house-prices.json +13 -0
- topologies/datasets/records/howto100m.json +13 -0
- topologies/datasets/records/htru2.json +13 -0
- topologies/datasets/records/human36m.json +13 -0
- topologies/datasets/records/humaneval.json +13 -0
- topologies/datasets/records/iam.json +13 -0
- topologies/datasets/records/icdar15.json +13 -0
- topologies/datasets/records/icdar2017-mlt.json +13 -0
- topologies/datasets/records/idrid.json +13 -0
- topologies/datasets/records/iemocap.json +12 -0
- topologies/datasets/records/ifeval.json +12 -0
- topologies/datasets/records/ili.json +13 -0
- topologies/datasets/records/imagenet-1k.json +13 -0
- topologies/datasets/records/imagenet-21k.json +13 -0
- topologies/datasets/records/imagenet-9.json +12 -0
- topologies/datasets/records/imagenet-o.json +13 -0
- topologies/datasets/records/imagenet-p.json +13 -0
- topologies/datasets/records/imagenet-real.json +12 -0
- topologies/datasets/records/imagenet-v2.json +13 -0
- topologies/datasets/records/imdb.json +13 -0
- topologies/datasets/records/inaturalist-2017.json +13 -0
- topologies/datasets/records/inaturalist-2021.json +13 -0
- topologies/datasets/records/inria-aerial.json +13 -0
- topologies/datasets/records/ipinyou.json +13 -0
- topologies/datasets/records/isic.json +13 -0
- topologies/datasets/records/isles-2022.json +13 -0
- topologies/datasets/records/isprs-potsdam.json +13 -0
- topologies/datasets/records/iwslt.json +13 -0
- topologies/datasets/records/jarvis-dft.json +13 -0
- topologies/datasets/records/jester.json +12 -0
- topologies/datasets/records/jigsaw-toxic.json +12 -0
- topologies/datasets/records/jigsaws.json +13 -0
- topologies/datasets/records/jvs.json +12 -0
- topologies/datasets/records/kermany-oct.json +13 -0
- topologies/datasets/records/kilt.json +12 -0
- topologies/datasets/records/kinetics-400.json +13 -0
- topologies/datasets/records/kinetics-600.json +13 -0
- topologies/datasets/records/kinetics-700.json +13 -0
- topologies/datasets/records/kits.json +13 -0
- topologies/datasets/records/kitti.json +13 -0
- topologies/datasets/records/kkbox-wsdm-cup.json +13 -0
- topologies/datasets/records/kmnist.json +12 -0
- topologies/datasets/records/ksponspeech.json +12 -0
- topologies/datasets/records/kuairec.json +13 -0
- topologies/datasets/records/kuaisar.json +13 -0
- topologies/datasets/records/kvasir-seg.json +13 -0
- topologies/datasets/records/laion-2b.json +13 -0
- topologies/datasets/records/laion-400m.json +13 -0
- topologies/datasets/records/lakh-midi.json +12 -0
- topologies/datasets/records/landslide4sense.json +13 -0
- topologies/datasets/records/largest.json +13 -0
- topologies/datasets/records/lasot.json +13 -0
- topologies/datasets/records/lastfm-1k.json +13 -0
- topologies/datasets/records/leaf.json +13 -0
- topologies/datasets/records/levir-cd.json +13 -0
- topologies/datasets/records/lfm-360k.json +13 -0
- topologies/datasets/records/lfw.json +12 -0
- topologies/datasets/records/libero.json +13 -0
- topologies/datasets/records/libri-light.json +13 -0
- topologies/datasets/records/librimix.json +13 -0
- topologies/datasets/records/librispeech.json +13 -0
- topologies/datasets/records/libritts.json +13 -0
- topologies/datasets/records/lidc-idri.json +13 -0
- topologies/datasets/records/lits.json +13 -0
- topologies/datasets/records/livecodebench.json +12 -0
- topologies/datasets/records/ljspeech.json +13 -0
- topologies/datasets/records/llava-instruct-150k.json +13 -0
- topologies/datasets/records/longbench.json +12 -0
- topologies/datasets/records/lsst-alert.json +13 -0
- topologies/datasets/records/luna16.json +13 -0
- topologies/datasets/records/lvis.json +13 -0
- topologies/datasets/records/lvos.json +12 -0
- topologies/datasets/records/m4.json +13 -0
- topologies/datasets/records/m5.json +13 -0
- topologies/datasets/records/maestro.json +13 -0
- topologies/datasets/records/magnatagatune.json +13 -0
- topologies/datasets/records/mapillary-vistas.json +13 -0
- topologies/datasets/records/market-1501.json +12 -0
- topologies/datasets/records/matbench.json +13 -0
- topologies/datasets/records/materials-project.json +13 -0
- topologies/datasets/records/math.json +13 -0
- topologies/datasets/records/mathqa.json +12 -0
- topologies/datasets/records/matterport3d.json +12 -0
- topologies/datasets/records/mbpp.json +13 -0
- topologies/datasets/records/md17.json +13 -0
- topologies/datasets/records/medical-segmentation-decathlon.json +13 -0
- topologies/datasets/records/medleydb.json +12 -0
- topologies/datasets/records/metaworld.json +13 -0
- topologies/datasets/records/metr-la.json +12 -0
- topologies/datasets/records/mhealth.json +13 -0
- topologies/datasets/records/middlebury.json +13 -0
- topologies/datasets/records/million-aid.json +13 -0
- topologies/datasets/records/mimic-cxr.json +13 -0
- topologies/datasets/records/mimic-iii.json +13 -0
- topologies/datasets/records/mind.json +13 -0
- topologies/datasets/records/minerl-obtaindiamond.json +13 -0
- topologies/datasets/records/minigrid.json +13 -0
- topologies/datasets/records/mit-bih.json +13 -0
- topologies/datasets/records/mit-indoor67.json +12 -0
- topologies/datasets/records/mjsynth.json +13 -0
- topologies/datasets/records/mls.json +12 -0
- topologies/datasets/records/mmlu-pro.json +13 -0
- topologies/datasets/records/mmlu.json +13 -0
- topologies/datasets/records/mmwave-har.json +13 -0
- topologies/datasets/records/modelnet40.json +13 -0
- topologies/datasets/records/moisesdb.json +13 -0
- topologies/datasets/records/moleculenet-8.json +13 -0
- topologies/datasets/records/moments-in-time.json +12 -0
- topologies/datasets/records/monash-30.json +13 -0
- topologies/datasets/records/monuseg.json +13 -0
- topologies/datasets/records/mose.json +12 -0
- topologies/datasets/records/mot17.json +13 -0
- topologies/datasets/records/mot20.json +13 -0
- topologies/datasets/records/movielens-1m.json +13 -0
- topologies/datasets/records/movielens-20m.json +13 -0
- topologies/datasets/records/movielens-25m.json +12 -0
- topologies/datasets/records/mpdd.json +13 -0
- topologies/datasets/records/mpi-inf-3dhp.json +12 -0
- topologies/datasets/records/mpii.json +13 -0
- topologies/datasets/records/ms-asl.json +13 -0
- topologies/datasets/records/ms-marco.json +13 -0
- topologies/datasets/records/msd.json +13 -0
- topologies/datasets/records/msmt17.json +12 -0
- topologies/datasets/records/msr-vtt.json +13 -0
- topologies/datasets/records/mstar.json +13 -0
- topologies/datasets/records/msvd.json +13 -0
- topologies/datasets/records/mtbs.json +13 -0
- topologies/datasets/records/mteb.json +12 -0
- topologies/datasets/records/multi-news.json +12 -0
- topologies/datasets/records/mura.json +13 -0
- topologies/datasets/records/musdb18-hq.json +13 -0
- topologies/datasets/records/musiccaps.json +12 -0
- topologies/datasets/records/musicnet.json +12 -0
- topologies/datasets/records/mutag.json +13 -0
- topologies/datasets/records/mvimgnet.json +12 -0
- topologies/datasets/records/mvsec.json +13 -0
- topologies/datasets/records/mvtec-ad.json +13 -0
- topologies/datasets/records/mvtec-loco.json +13 -0
- topologies/datasets/records/mvtec.json +13 -0
- topologies/datasets/records/n-caltech101.json +13 -0
- topologies/datasets/records/n-cmapss.json +13 -0
- topologies/datasets/records/n2c2.json +13 -0
- topologies/datasets/records/nab.json +13 -0
- topologies/datasets/records/nabirds.json +12 -0
- topologies/datasets/records/nas-bench-301.json +13 -0
- topologies/datasets/records/natural-questions.json +13 -0
- topologies/datasets/records/nct-crc-he.json +13 -0
- topologies/datasets/records/nell-995.json +13 -0
- topologies/datasets/records/nerf-synthetic.json +12 -0
- topologies/datasets/records/netflix-prize.json +12 -0
- topologies/datasets/records/nethack.json +13 -0
- topologies/datasets/records/neu-det.json +13 -0
- topologies/datasets/records/nico.json +13 -0
- topologies/datasets/records/nih-14.json +13 -0
- topologies/datasets/records/nllb-seed.json +13 -0
- topologies/datasets/records/nmnist.json +13 -0
- topologies/datasets/records/noaa-oisst.json +13 -0
- topologies/datasets/records/nsl-kdd.json +13 -0
- topologies/datasets/records/nsynth.json +13 -0
- topologies/datasets/records/ntu-rgbd.json +12 -0
- topologies/datasets/records/nuscenes.json +13 -0
- topologies/datasets/records/nwpu-resisc45.json +13 -0
- topologies/datasets/records/nyc-taxi.json +13 -0
- topologies/datasets/records/nyu-depth-v2.json +12 -0
- topologies/datasets/records/objaverse.json +12 -0
- topologies/datasets/records/objectnet.json +12 -0
- topologies/datasets/records/objects365.json +13 -0
- topologies/datasets/records/oc20.json +13 -0
- topologies/datasets/records/oc22.json +13 -0
- topologies/datasets/records/octa-500.json +13 -0
- topologies/datasets/records/office-home.json +12 -0
- topologies/datasets/records/ogbg-molhiv.json +13 -0
- topologies/datasets/records/ogbg-pcba.json +13 -0
- topologies/datasets/records/ogbg-ppa.json +12 -0
- topologies/datasets/records/ogbl-collab.json +13 -0
- topologies/datasets/records/ogbl-ddi.json +13 -0
- topologies/datasets/records/ogbl-ppa.json +13 -0
- topologies/datasets/records/ogbn-arxiv.json +13 -0
- topologies/datasets/records/ogbn-mag.json +13 -0
- topologies/datasets/records/ogbn-papers100m.json +13 -0
- topologies/datasets/records/ogbn-products.json +13 -0
- topologies/datasets/records/ogbn-proteins.json +13 -0
- topologies/datasets/records/ok-vqa.json +13 -0
- topologies/datasets/records/once.json +12 -0
- topologies/datasets/records/open-bandit.json +13 -0
- topologies/datasets/records/openhermes.json +13 -0
- topologies/datasets/records/openimages-v7.json +13 -0
- topologies/datasets/records/openmic-2018.json +13 -0
- topologies/datasets/records/openml-cc18.json +13 -0
- topologies/datasets/records/openwebtext.json +12 -0
- topologies/datasets/records/opportunity.json +13 -0
- topologies/datasets/records/opus-100.json +13 -0
- topologies/datasets/records/oqmd.json +13 -0
- topologies/datasets/records/orcadata.json +13 -0
- topologies/datasets/records/otb100.json +13 -0
- topologies/datasets/records/otto.json +13 -0
- topologies/datasets/records/outbrain-click-prediction.json +13 -0
- topologies/datasets/records/oxford-flowers-102.json +13 -0
- topologies/datasets/records/pacs.json +12 -0
- topologies/datasets/records/padchest.json +13 -0
- topologies/datasets/records/pamap2.json +13 -0
- topologies/datasets/records/pannuke.json +13 -0
- topologies/datasets/records/paracrawl.json +12 -0
- topologies/datasets/records/pascal-context.json +12 -0
- topologies/datasets/records/pascal-voc-07.json +13 -0
- topologies/datasets/records/pascal-voc-12.json +13 -0
- topologies/datasets/records/pastis.json +13 -0
- topologies/datasets/records/pcam.json +13 -0
- topologies/datasets/records/pcb-defect.json +13 -0
- topologies/datasets/records/pcqm4mv2.json +13 -0
- topologies/datasets/records/pdbbind.json +13 -0
- topologies/datasets/records/pdebench.json +13 -0
- topologies/datasets/records/pems-03.json +13 -0
- topologies/datasets/records/pems-04.json +13 -0
- topologies/datasets/records/pems-07.json +13 -0
- topologies/datasets/records/pems-08.json +13 -0
- topologies/datasets/records/pems-bay.json +13 -0
- topologies/datasets/records/penn-treebank.json +12 -0
- topologies/datasets/records/peoples-speech.json +12 -0
- topologies/datasets/records/phakir.json +13 -0
- topologies/datasets/records/phm-milling.json +13 -0
- topologies/datasets/records/physionet-2012.json +13 -0
- topologies/datasets/records/places365.json +13 -0
- topologies/datasets/records/plant-pathology-2020.json +13 -0
- topologies/datasets/records/plantdoc.json +13 -0
- topologies/datasets/records/plantvillage.json +13 -0
- topologies/datasets/records/porto-seguro.json +13 -0
- topologies/datasets/records/posetrack21.json +12 -0
- topologies/datasets/records/potsdam.json +13 -0
- topologies/datasets/records/powergridworld.json +13 -0
- topologies/datasets/records/ppi.json +12 -0
- topologies/datasets/records/procgen.json +13 -0
- topologies/datasets/records/prophesee-gen1.json +13 -0
- topologies/datasets/records/proteinnet.json +13 -0
- topologies/datasets/records/proteins.json +13 -0
- topologies/datasets/records/publaynet.json +13 -0
- topologies/datasets/records/pubmed.json +13 -0
- topologies/datasets/records/pubmedqa.json +12 -0
- topologies/datasets/records/pubtabnet.json +13 -0
- topologies/datasets/records/pv-el.json +13 -0
- topologies/datasets/records/qm7b.json +13 -0
- topologies/datasets/records/qm9.json +13 -0
- topologies/datasets/records/qmnist.json +12 -0
- topologies/datasets/records/race.json +12 -0
- topologies/datasets/records/radar-doppler.json +13 -0
- topologies/datasets/records/real-toxicity-prompts.json +12 -0
- topologies/datasets/records/reddit.json +13 -0
- topologies/datasets/records/redpajama-v2.json +13 -0
- topologies/datasets/records/ref-youtube-vos.json +12 -0
- topologies/datasets/records/refcoco-plus.json +13 -0
- topologies/datasets/records/refcoco.json +13 -0
- topologies/datasets/records/refcocog.json +13 -0
- topologies/datasets/records/replica.json +12 -0
- topologies/datasets/records/retailrocket-ctr.json +13 -0
- topologies/datasets/records/retailrocket.json +13 -0
- topologies/datasets/records/retinal-vessels.json +13 -0
- topologies/datasets/records/rl-unplugged.json +13 -0
- topologies/datasets/records/rlbench.json +13 -0
- topologies/datasets/records/rmd17.json +13 -0
- topologies/datasets/records/robomimic.json +13 -0
- topologies/datasets/records/rossmann-store-sales.json +13 -0
- topologies/datasets/records/rsna-pneumonia.json +13 -0
- topologies/datasets/records/rvl-cdip.json +13 -0
- topologies/datasets/records/s3dis.json +13 -0
- topologies/datasets/records/samsum.json +12 -0
- topologies/datasets/records/santander.json +13 -0
- topologies/datasets/records/sbu-captions.json +13 -0
- topologies/datasets/records/scannet.json +13 -0
- topologies/datasets/records/scedc.json +13 -0
- topologies/datasets/records/sdss.json +13 -0
- topologies/datasets/records/sen12ms.json +13 -0
- topologies/datasets/records/shanghaitech.json +13 -0
- topologies/datasets/records/shapenet-part.json +13 -0
- topologies/datasets/records/shipsear.json +13 -0
- topologies/datasets/records/shl.json +13 -0
- topologies/datasets/records/siim-acr-pneumothorax.json +13 -0
- topologies/datasets/records/sintel.json +13 -0
- topologies/datasets/records/sketchy.json +13 -0
- topologies/datasets/records/slakh2100.json +12 -0
- topologies/datasets/records/sleep-edf.json +13 -0
- topologies/datasets/records/slimpajama.json +12 -0
- topologies/datasets/records/smac.json +13 -0
- topologies/datasets/records/smacv2.json +13 -0
- topologies/datasets/records/smap-msl.json +13 -0
- topologies/datasets/records/smd.json +13 -0
- topologies/datasets/records/sms-wsj.json +12 -0
- topologies/datasets/records/snli.json +12 -0
- topologies/datasets/records/solar.json +13 -0
- topologies/datasets/records/something-something-v2.json +13 -0
- topologies/datasets/records/sonyc-ust.json +12 -0
- topologies/datasets/records/spacenet.json +13 -0
- topologies/datasets/records/spgispeech.json +13 -0
- topologies/datasets/records/spotify-mpd.json +13 -0
- topologies/datasets/records/spring.json +13 -0
- topologies/datasets/records/squad-2.json +13 -0
- topologies/datasets/records/squad.json +13 -0
- topologies/datasets/records/sroie.json +13 -0
- topologies/datasets/records/ssdd.json +13 -0
- topologies/datasets/records/stanford-cars.json +13 -0
- topologies/datasets/records/stanford-dogs.json +12 -0
- topologies/datasets/records/steam.json +13 -0
- topologies/datasets/records/stl-10.json +13 -0
- topologies/datasets/records/sugarbeets-2016.json +13 -0
- topologies/datasets/records/sun-rgbd.json +12 -0
- topologies/datasets/records/sun397.json +12 -0
- topologies/datasets/records/superglue.json +13 -0
- topologies/datasets/records/sustainbench.json +13 -0
- topologies/datasets/records/susy.json +13 -0
- topologies/datasets/records/svamp.json +12 -0
- topologies/datasets/records/svhn.json +13 -0
- topologies/datasets/records/swat-wadi.json +13 -0
- topologies/datasets/records/switchboard.json +12 -0
- topologies/datasets/records/synthia.json +13 -0
- topologies/datasets/records/synthtext.json +13 -0
- topologies/datasets/records/tabarena.json +12 -0
- topologies/datasets/records/tabula-sapiens.json +13 -0
- topologies/datasets/records/tao.json +12 -0
- topologies/datasets/records/tape.json +13 -0
- topologies/datasets/records/tartanair.json +13 -0
- topologies/datasets/records/tcga.json +13 -0
- topologies/datasets/records/ted2020.json +12 -0
- topologies/datasets/records/tedlium-3.json +13 -0
- topologies/datasets/records/tenrec.json +13 -0
- topologies/datasets/records/terra-incognita.json +12 -0
- topologies/datasets/records/tess.json +13 -0
- topologies/datasets/records/textvqa.json +13 -0
- topologies/datasets/records/tgb.json +12 -0
- topologies/datasets/records/the-pile.json +13 -0
- topologies/datasets/records/theoremqa.json +12 -0
- topologies/datasets/records/things3d.json +13 -0
- topologies/datasets/records/timit.json +12 -0
- topologies/datasets/records/tiny-imagenet.json +13 -0
- topologies/datasets/records/titanic.json +13 -0
- topologies/datasets/records/totalsegmentator.json +13 -0
- topologies/datasets/records/touch-and-go.json +13 -0
- topologies/datasets/records/trackingnet.json +13 -0
- topologies/datasets/records/traffic.json +13 -0
- topologies/datasets/records/transnas-bench-101.json +13 -0
- topologies/datasets/records/triviaqa.json +13 -0
- topologies/datasets/records/truthfulqa.json +13 -0
- topologies/datasets/records/twitch-gamers.json +12 -0
- topologies/datasets/records/tydiqa.json +13 -0
- topologies/datasets/records/uav123.json +12 -0
- topologies/datasets/records/uc-merced.json +13 -0
- topologies/datasets/records/ucf-crime.json +13 -0
- topologies/datasets/records/ucf101.json +13 -0
- topologies/datasets/records/ucr-anomaly-archive.json +13 -0
- topologies/datasets/records/ucr.json +13 -0
- topologies/datasets/records/ucsd-ped.json +13 -0
- topologies/datasets/records/uea.json +13 -0
- topologies/datasets/records/uecfood256.json +13 -0
- topologies/datasets/records/ujiindoorloc.json +13 -0
- topologies/datasets/records/uk-biobank.json +13 -0
- topologies/datasets/records/uk-dale.json +13 -0
- topologies/datasets/records/ultrachat.json +12 -0
- topologies/datasets/records/ultrafeedback.json +12 -0
- topologies/datasets/records/umls.json +13 -0
- topologies/datasets/records/un-parallel.json +12 -0
- topologies/datasets/records/urbansound8k.json +13 -0
- topologies/datasets/records/uwb-nlos.json +13 -0
- topologies/datasets/records/vaihingen.json +13 -0
- topologies/datasets/records/vctk.json +13 -0
- topologies/datasets/records/veri-776.json +12 -0
- topologies/datasets/records/vggface2.json +13 -0
- topologies/datasets/records/vima.json +13 -0
- topologies/datasets/records/visa.json +13 -0
- topologies/datasets/records/visda-2017.json +12 -0
- topologies/datasets/records/visual-genome.json +13 -0
- topologies/datasets/records/voicebank-demand.json +12 -0
- topologies/datasets/records/voxceleb-1.json +13 -0
- topologies/datasets/records/voxceleb-2.json +13 -0
- topologies/datasets/records/voxlingua107.json +12 -0
- topologies/datasets/records/voxpopuli.json +13 -0
- topologies/datasets/records/vqav2.json +13 -0
- topologies/datasets/records/waterbirds.json +13 -0
- topologies/datasets/records/wavcaps.json +12 -0
- topologies/datasets/records/waymo-open.json +13 -0
- topologies/datasets/records/weather.json +13 -0
- topologies/datasets/records/weatherbench-2.json +13 -0
- topologies/datasets/records/wham.json +13 -0
- topologies/datasets/records/whamr.json +13 -0
- topologies/datasets/records/whu-hi.json +13 -0
- topologies/datasets/records/widar-3.json +13 -0
- topologies/datasets/records/widar.json +13 -0
- topologies/datasets/records/wider-face.json +12 -0
- topologies/datasets/records/wikipedia-web-traffic.json +13 -0
- topologies/datasets/records/wikitext-103.json +12 -0
- topologies/datasets/records/wilds-fmow.json +13 -0
- topologies/datasets/records/wilds-rxrx1.json +13 -0
- topologies/datasets/records/wind.json +13 -0
- topologies/datasets/records/wisdm.json +13 -0
- topologies/datasets/records/wit.json +13 -0
- topologies/datasets/records/wmt.json +13 -0
- topologies/datasets/records/wsj.json +12 -0
- topologies/datasets/records/wsj0-2mix.json +12 -0
- topologies/datasets/records/xbd.json +13 -0
- topologies/datasets/records/xeno-canto.json +13 -0
- topologies/datasets/records/xnli.json +13 -0
- topologies/datasets/records/xsum.json +13 -0
- topologies/datasets/records/xtreme.json +13 -0
- topologies/datasets/records/xview.json +13 -0
- topologies/datasets/records/yahoo-s5.json +13 -0
- topologies/datasets/records/yelp.json +13 -0
- topologies/datasets/records/yfcc100m.json +13 -0
- topologies/datasets/records/youtube-vis.json +12 -0
- topologies/datasets/records/youtube-vos.json +13 -0
- topologies/datasets/records/zinc-12k.json +13 -0
- topologies/datasets/records/zinc-250k.json +13 -0
- topologies/datasets/records/zinc-full.json +13 -0
- topologies/datasets/schema.py +278 -0
- topologies/enums.py +80 -0
- topologies/evaluation/__init__.py +58 -0
- topologies/evaluation/api.py +1162 -0
- topologies/evaluation/metrics.py +438 -0
- topologies/experiments/__init__.py +181 -0
- topologies/experiments/analysis.py +645 -0
- topologies/experiments/bench.py +435 -0
- topologies/experiments/bench_checks.py +251 -0
- topologies/experiments/cache.py +229 -0
- topologies/experiments/callbacks.py +163 -0
- topologies/experiments/cli.py +528 -0
- topologies/experiments/coordinator.py +387 -0
- topologies/experiments/core.py +499 -0
- topologies/experiments/costs.py +180 -0
- topologies/experiments/distributions.py +133 -0
- topologies/experiments/errors.py +58 -0
- topologies/experiments/insights.py +352 -0
- topologies/experiments/metrics.py +134 -0
- topologies/experiments/parallel.py +294 -0
- topologies/experiments/pipeline.py +592 -0
- topologies/experiments/planning.py +289 -0
- topologies/experiments/pruners.py +86 -0
- topologies/experiments/render/__init__.py +1 -0
- topologies/experiments/render/console.py +489 -0
- topologies/experiments/render/html.py +512 -0
- topologies/experiments/render/live.py +130 -0
- topologies/experiments/render/markdown.py +73 -0
- topologies/experiments/results.py +694 -0
- topologies/experiments/routing.py +510 -0
- topologies/experiments/runner.py +233 -0
- topologies/experiments/space.py +513 -0
- topologies/experiments/spec.py +221 -0
- topologies/experiments/stats.py +322 -0
- topologies/experiments/store.py +198 -0
- topologies/experiments/table.py +134 -0
- topologies/experiments/tasks.py +905 -0
- topologies/experiments/trial.py +425 -0
- topologies/experiments/tui.py +14 -0
- topologies/experiments/yaml_spec.py +221 -0
- topologies/generation.py +252 -0
- topologies/implementations/losses/a2c.py +53 -0
- topologies/implementations/losses/poly1_loss.py +43 -0
- topologies/implementations/optimizers/adabelief.py +54 -0
- topologies/implementations/optimizers/adafactor.py +66 -0
- topologies/implementations/optimizers/adahessian.py +76 -0
- topologies/implementations/optimizers/adam8bit.py +75 -0
- topologies/implementations/optimizers/adam_mini.py +78 -0
- topologies/implementations/optimizers/ademamix.py +59 -0
- topologies/implementations/optimizers/asam.py +71 -0
- topologies/implementations/optimizers/core.py +29 -0
- topologies/implementations/optimizers/ema.py +49 -0
- topologies/implementations/optimizers/fadam.py +58 -0
- topologies/implementations/optimizers/fisher_sam.py +76 -0
- topologies/implementations/optimizers/flora.py +41 -0
- topologies/implementations/optimizers/galore.py +42 -0
- topologies/implementations/optimizers/grokfast.py +46 -0
- topologies/implementations/optimizers/gsam.py +67 -0
- topologies/implementations/optimizers/kfac.py +43 -0
- topologies/implementations/optimizers/lamb.py +63 -0
- topologies/implementations/optimizers/lars.py +46 -0
- topologies/implementations/optimizers/lion.py +49 -0
- topologies/implementations/optimizers/lookahead.py +53 -0
- topologies/implementations/optimizers/model_soup.py +50 -0
- topologies/implementations/optimizers/muon.py +41 -0
- topologies/implementations/optimizers/novograd.py +62 -0
- topologies/implementations/optimizers/polynomial_decay.py +52 -0
- topologies/implementations/optimizers/qlora.py +18 -0
- topologies/implementations/optimizers/radam.py +71 -0
- topologies/implementations/optimizers/relora.py +17 -0
- topologies/implementations/optimizers/sam.py +78 -0
- topologies/implementations/optimizers/schedule_free.py +38 -0
- topologies/implementations/optimizers/shampoo.py +60 -0
- topologies/implementations/optimizers/sm3.py +44 -0
- topologies/implementations/optimizers/soap.py +54 -0
- topologies/implementations/optimizers/sophia.py +61 -0
- topologies/implementations/optimizers/swa.py +50 -0
- topologies/implementations/optimizers/swad.py +52 -0
- topologies/implementations/optimizers/swalp.py +43 -0
- topologies/implementations/optimizers/twa.py +50 -0
- topologies/implementations/schedulers/clr.py +21 -0
- topologies/implementations/schedulers/cooldown.py +37 -0
- topologies/implementations/schedulers/cosine_min.py +19 -0
- topologies/implementations/schedulers/cosine_restarts.py +24 -0
- topologies/implementations/schedulers/exponential.py +32 -0
- topologies/implementations/schedulers/grafted.py +43 -0
- topologies/implementations/schedulers/multistep.py +21 -0
- topologies/implementations/schedulers/noam.py +39 -0
- topologies/implementations/schedulers/onecycle.py +10 -0
- topologies/implementations/schedulers/reduce_on_plateau.py +22 -0
- topologies/implementations/schedulers/sgdr.py +24 -0
- topologies/implementations/schedulers/trapezoidal.py +42 -0
- topologies/implementations/schedulers/warmup_linear.py +32 -0
- topologies/implementations/schedulers/wsd.py +46 -0
- topologies/implementations/training/core.py +298 -0
- topologies/inference.py +88 -0
- topologies/inference_tasks/__init__.py +1 -0
- topologies/inference_tasks/audio.py +26 -0
- topologies/inference_tasks/detection.py +63 -0
- topologies/inference_tasks/diffusion.py +114 -0
- topologies/inference_tasks/music.py +34 -0
- topologies/inference_tasks/retrieval.py +19 -0
- topologies/introspection/__init__.py +84 -0
- topologies/introspection/_tree.py +111 -0
- topologies/introspection/adapters/__init__.py +159 -0
- topologies/introspection/adapters/builtins.py +20 -0
- topologies/introspection/adapters/diffusion.py +41 -0
- topologies/introspection/adapters/generic.py +17 -0
- topologies/introspection/adapters/huggingface.py +96 -0
- topologies/introspection/adapters/topologies_catalog.py +212 -0
- topologies/introspection/adapters/torch_modules.py +34 -0
- topologies/introspection/api.py +303 -0
- topologies/introspection/capture.py +580 -0
- topologies/introspection/cli.py +70 -0
- topologies/introspection/collection.py +457 -0
- topologies/introspection/errors.py +35 -0
- topologies/introspection/functional.py +339 -0
- topologies/introspection/hooks.py +262 -0
- topologies/introspection/html.py +122 -0
- topologies/introspection/inputs.py +180 -0
- topologies/introspection/integrations.py +110 -0
- topologies/introspection/interventions.py +388 -0
- topologies/introspection/objectives.py +261 -0
- topologies/introspection/payloads.py +116 -0
- topologies/introspection/reducers.py +755 -0
- topologies/introspection/report.py +454 -0
- topologies/introspection/semantics.py +218 -0
- topologies/introspection/session.py +386 -0
- topologies/introspection/sites.py +501 -0
- topologies/introspection/store.py +148 -0
- topologies/introspection/subject.py +236 -0
- topologies/introspection/techniques/__init__.py +220 -0
- topologies/introspection/techniques/_features.py +109 -0
- topologies/introspection/techniques/activations.py +215 -0
- topologies/introspection/techniques/anomalies.py +224 -0
- topologies/introspection/techniques/attention.py +280 -0
- topologies/introspection/techniques/attribution.py +450 -0
- topologies/introspection/techniques/dictionary.py +205 -0
- topologies/introspection/techniques/geometry.py +124 -0
- topologies/introspection/techniques/gradients.py +144 -0
- topologies/introspection/techniques/interventions.py +447 -0
- topologies/introspection/techniques/lens.py +173 -0
- topologies/introspection/techniques/maximization.py +191 -0
- topologies/introspection/techniques/neurons.py +206 -0
- topologies/introspection/techniques/probing.py +224 -0
- topologies/introspection/techniques/process.py +261 -0
- topologies/introspection/techniques/similarity.py +176 -0
- topologies/introspection/techniques/structure.py +246 -0
- topologies/introspection/techniques/weights.py +156 -0
- topologies/introspection/trace.py +324 -0
- topologies/introspection/views.py +168 -0
- topologies/layers/__init__.py +0 -0
- topologies/layers/alphafold.py +27 -0
- topologies/layers/audio_frontend.py +138 -0
- topologies/layers/audio_perturb.py +61 -0
- topologies/layers/augmix.py +62 -0
- topologies/layers/auprc.py +26 -0
- topologies/layers/autoformer.py +26 -0
- topologies/layers/awp.py +55 -0
- topologies/layers/bcq.py +40 -0
- topologies/layers/bevformer.py +111 -0
- topologies/layers/bic.py +17 -0
- topologies/layers/bidirectional_rnn_wrapper.py +34 -0
- topologies/layers/bifpn.py +28 -0
- topologies/layers/bigbird_attention.py +52 -0
- topologies/layers/bigvgan.py +23 -0
- topologies/layers/box_coder.py +53 -0
- topologies/layers/causal_temporal_block.py +22 -0
- topologies/layers/cbam_gate.py +43 -0
- topologies/layers/chemformer.py +79 -0
- topologies/layers/chunked_cross_attention.py +47 -0
- topologies/layers/cluster_gcn.py +59 -0
- topologies/layers/cnp.py +15 -0
- topologies/layers/complex.py +44 -0
- topologies/layers/conformer.py +59 -0
- topologies/layers/contrastive_search.py +45 -0
- topologies/layers/conv_blocks.py +26 -0
- topologies/layers/coverage.py +11 -0
- topologies/layers/cpvt.py +41 -0
- topologies/layers/crepe.py +43 -0
- topologies/layers/crestereo.py +88 -0
- topologies/layers/cvt.py +36 -0
- topologies/layers/ddim.py +21 -0
- topologies/layers/deeplob.py +111 -0
- topologies/layers/depth_mu_p.py +45 -0
- topologies/layers/diagonal_ssm.py +33 -0
- topologies/layers/diffusion_policy.py +121 -0
- topologies/layers/diffusion_residual.py +27 -0
- topologies/layers/distmult.py +23 -0
- topologies/layers/drop_path.py +19 -0
- topologies/layers/dsp_utils.py +79 -0
- topologies/layers/dueling_q_head.py +16 -0
- topologies/layers/edgenext.py +53 -0
- topologies/layers/edm_heun.py +26 -0
- topologies/layers/efficientad.py +11 -0
- topologies/layers/efficientdet.py +32 -0
- topologies/layers/feature_pyramid.py +22 -0
- topologies/layers/feed_forward.py +27 -0
- topologies/layers/film.py +42 -0
- topologies/layers/fir_filter.py +22 -0
- topologies/layers/flownet2.py +51 -0
- topologies/layers/fm_interaction.py +11 -0
- topologies/layers/fsq.py +24 -0
- topologies/layers/ft_transformer.py +21 -0
- topologies/layers/gail.py +33 -0
- topologies/layers/galerkin_attention.py +24 -0
- topologies/layers/galore.py +18 -0
- topologies/layers/geglu.py +17 -0
- topologies/layers/geglu_ffn.py +21 -0
- topologies/layers/geneformer.py +45 -0
- topologies/layers/ghostnet.py +44 -0
- topologies/layers/git.py +55 -0
- topologies/layers/gmt.py +44 -0
- topologies/layers/gp_bo.py +39 -0
- topologies/layers/graph_convolution.py +64 -0
- topologies/layers/graph_readout.py +32 -0
- topologies/layers/groupnorm_block.py +21 -0
- topologies/layers/hard_swish.py +8 -0
- topologies/layers/harmonic_oscillator.py +39 -0
- topologies/layers/hole.py +37 -0
- topologies/layers/hstu.py +42 -0
- topologies/layers/hyena_block.py +51 -0
- topologies/layers/hyena_operator.py +36 -0
- topologies/layers/i3d.py +17 -0
- topologies/layers/imap.py +37 -0
- topologies/layers/inception_resnet.py +17 -0
- topologies/layers/influence.py +20 -0
- topologies/layers/informer.py +22 -0
- topologies/layers/instancenorm_block.py +20 -0
- topologies/layers/instant_ngp.py +54 -0
- topologies/layers/integrated_gradients.py +26 -0
- topologies/layers/inverted_residual.py +21 -0
- topologies/layers/joint_energy.py +44 -0
- topologies/layers/jukebox.py +44 -0
- topologies/layers/k_planes.py +45 -0
- topologies/layers/kan.py +64 -0
- topologies/layers/kerple.py +34 -0
- topologies/layers/kpconv.py +61 -0
- topologies/layers/lars.py +28 -0
- topologies/layers/layer_scale.py +20 -0
- topologies/layers/layernorm.py +20 -0
- topologies/layers/layernorm_affine.py +18 -0
- topologies/layers/layoutlm.py +37 -0
- topologies/layers/leaf.py +60 -0
- topologies/layers/learned_position.py +22 -0
- topologies/layers/linear_attention.py +42 -0
- topologies/layers/linear_chain_crf.py +58 -0
- topologies/layers/linformer.py +37 -0
- topologies/layers/llava.py +19 -0
- topologies/layers/mamba_block.py +39 -0
- topologies/layers/masked_pooling.py +44 -0
- topologies/layers/memorizing_attention.py +86 -0
- topologies/layers/meshcnn.py +379 -0
- topologies/layers/minigpt4.py +18 -0
- topologies/layers/moirai.py +24 -0
- topologies/layers/multi_head_attention.py +59 -0
- topologies/layers/nearest_neighbor_retriever.py +23 -0
- topologies/layers/neuralucb_bonus.py +16 -0
- topologies/layers/nlu_heads.py +46 -0
- topologies/layers/node_ensemble.py +71 -0
- topologies/layers/noisy_nets.py +55 -0
- topologies/layers/paged_attention.py +103 -0
- topologies/layers/pali.py +52 -0
- topologies/layers/patch_embedding.py +25 -0
- topologies/layers/pcen.py +37 -0
- topologies/layers/perceiver_io.py +30 -0
- topologies/layers/performer.py +46 -0
- topologies/layers/pointcnn.py +62 -0
- topologies/layers/pointllm.py +25 -0
- topologies/layers/ppo_clip.py +19 -0
- topologies/layers/prelu.py +21 -0
- topologies/layers/projection_head.py +16 -0
- topologies/layers/qk_norm_attention.py +58 -0
- topologies/layers/quartznet.py +41 -0
- topologies/layers/quate.py +52 -0
- topologies/layers/randaugment.py +99 -0
- topologies/layers/rectified_flow.py +63 -0
- topologies/layers/recurrent_backbone.py +27 -0
- topologies/layers/replaced_token_detection_head.py +36 -0
- topologies/layers/residual_blocks.py +19 -0
- topologies/layers/resnet_v15.py +43 -0
- topologies/layers/rmsnorm.py +16 -0
- topologies/layers/rnn_transducer.py +42 -0
- topologies/layers/rotary_embedding.py +24 -0
- topologies/layers/rotate.py +46 -0
- topologies/layers/rwkv_channel_mix.py +30 -0
- topologies/layers/s3d.py +33 -0
- topologies/layers/s4_kernel.py +93 -0
- topologies/layers/saint.py +26 -0
- topologies/layers/score_sde.py +46 -0
- topologies/layers/seanet.py +43 -0
- topologies/layers/sentence_bert.py +21 -0
- topologies/layers/shufflenet_v2.py +27 -0
- topologies/layers/silu_activation.py +16 -0
- topologies/layers/simkd.py +28 -0
- topologies/layers/simple.py +33 -0
- topologies/layers/simplenet.py +47 -0
- topologies/layers/sinusoidal_position.py +22 -0
- topologies/layers/skip_upsample.py +20 -0
- topologies/layers/skipinit.py +18 -0
- topologies/layers/slot_attention.py +57 -0
- topologies/layers/snake.py +13 -0
- topologies/layers/snip.py +13 -0
- topologies/layers/source_separation.py +15 -0
- topologies/layers/speaker_embedding.py +22 -0
- topologies/layers/specaugment.py +65 -0
- topologies/layers/squeeze_excitation.py +18 -0
- topologies/layers/stargan_v2.py +65 -0
- topologies/layers/stft_frontend.py +27 -0
- topologies/layers/structure_module.py +111 -0
- topologies/layers/stylegan2.py +57 -0
- topologies/layers/surrogate_gradient.py +57 -0
- topologies/layers/tabtransformer.py +69 -0
- topologies/layers/temporal_shift.py +31 -0
- topologies/layers/tfn.py +60 -0
- topologies/layers/tide.py +136 -0
- topologies/layers/top_2_router.py +46 -0
- topologies/layers/topk_moe_layer.py +63 -0
- topologies/layers/transducer_asr.py +53 -0
- topologies/layers/transformer_block.py +66 -0
- topologies/layers/transh.py +26 -0
- topologies/layers/tsmixer.py +60 -0
- topologies/layers/ttt_titans_mblm.py +50 -0
- topologies/layers/tucker.py +40 -0
- topologies/layers/unet3plus.py +60 -0
- topologies/layers/unetpp.py +42 -0
- topologies/layers/v_trace.py +82 -0
- topologies/layers/vector_quantizer.py +25 -0
- topologies/layers/waveglow.py +45 -0
- topologies/layers/whisper.py +54 -0
- topologies/losses/catalog.json +529 -0
- topologies/metadata/__init__.py +30 -0
- topologies/metadata/schema.py +446 -0
- topologies/metrics.py +206 -0
- topologies/models/__init__.py +0 -0
- topologies/models/actor_critic.py +33 -0
- topologies/models/alexnet.py +57 -0
- topologies/models/attention_nmt.py +93 -0
- topologies/models/attn2d.py +68 -0
- topologies/models/audio_crnn.py +79 -0
- topologies/models/autoencoders.py +106 -0
- topologies/models/autoint.py +50 -0
- topologies/models/awr.py +46 -0
- topologies/models/bart.py +121 -0
- topologies/models/bert4rec.py +70 -0
- topologies/models/bert_encoder.py +845 -0
- topologies/models/bigbird.py +95 -0
- topologies/models/biggan.py +407 -0
- topologies/models/blip2.py +37 -0
- topologies/models/bst.py +41 -0
- topologies/models/byt5.py +204 -0
- topologies/models/c3d.py +27 -0
- topologies/models/canine.py +221 -0
- topologies/models/cascade_rcnn.py +123 -0
- topologies/models/caser.py +51 -0
- topologies/models/centernet.py +26 -0
- topologies/models/cgan.py +52 -0
- topologies/models/charformer.py +272 -0
- topologies/models/compact_convnet.py +38 -0
- topologies/models/consistency_model.py +103 -0
- topologies/models/contrastive_vision.py +90 -0
- topologies/models/conv_asr.py +59 -0
- topologies/models/convnext.py +88 -0
- topologies/models/ctc_acoustic_model.py +63 -0
- topologies/models/cyclegan.py +41 -0
- topologies/models/dalle.py +56 -0
- topologies/models/dbn.py +67 -0
- topologies/models/dcgan.py +65 -0
- topologies/models/dcn_v2.py +40 -0
- topologies/models/dcrnn.py +160 -0
- topologies/models/ddsp_synthesizer.py +51 -0
- topologies/models/deberta.py +344 -0
- topologies/models/decision_transformer.py +67 -0
- topologies/models/deepfm.py +36 -0
- topologies/models/deis.py +25 -0
- topologies/models/deit.py +69 -0
- topologies/models/densenet.py +85 -0
- topologies/models/detect_ops.py +101 -0
- topologies/models/detr.py +53 -0
- topologies/models/diagonal_ssm_model.py +38 -0
- topologies/models/diffusion_unet.py +94 -0
- topologies/models/dinov2.py +53 -0
- topologies/models/dip_vae.py +65 -0
- topologies/models/distributional_q.py +119 -0
- topologies/models/dit.py +109 -0
- topologies/models/dlinear.py +47 -0
- topologies/models/dpm_solver.py +31 -0
- topologies/models/dqn_family.py +33 -0
- topologies/models/dreamerv2.py +55 -0
- topologies/models/dreamerv3.py +52 -0
- topologies/models/droq.py +49 -0
- topologies/models/dss_s5_mamba.py +156 -0
- topologies/models/e_branchformer.py +51 -0
- topologies/models/ease.py +48 -0
- topologies/models/ecapa_tdnn.py +40 -0
- topologies/models/efficient_attention.py +94 -0
- topologies/models/efficient_conv.py +102 -0
- topologies/models/fastpitch.py +41 -0
- topologies/models/fastspeech2.py +45 -0
- topologies/models/ffjord.py +48 -0
- topologies/models/fibinet.py +53 -0
- topologies/models/fits.py +34 -0
- topologies/models/flow_matching.py +36 -0
- topologies/models/fno.py +38 -0
- topologies/models/fsq.py +22 -0
- topologies/models/fullsubnet.py +60 -0
- topologies/models/gatv2.py +50 -0
- topologies/models/gemma.py +189 -0
- topologies/models/glow_tts.py +109 -0
- topologies/models/gmlp.py +57 -0
- topologies/models/gmt.py +44 -0
- topologies/models/gpt2.py +120 -0
- topologies/models/gpt_decoder_family.py +297 -0
- topologies/models/gpt_decoder_lm.py +71 -0
- topologies/models/gpt_j_neox_pythia.py +135 -0
- topologies/models/grace.py +73 -0
- topologies/models/grad_tts.py +42 -0
- topologies/models/graph_network.py +61 -0
- topologies/models/graph_wavenet.py +34 -0
- topologies/models/graphsage.py +57 -0
- topologies/models/graphsaint.py +11 -0
- topologies/models/han.py +10 -0
- topologies/models/hnn.py +38 -0
- topologies/models/hornet.py +29 -0
- topologies/models/hyena.py +71 -0
- topologies/models/i_jepa.py +32 -0
- topologies/models/iaf.py +57 -0
- topologies/models/icm.py +45 -0
- topologies/models/image_text_dual_encoder.py +77 -0
- topologies/models/imagegpt.py +53 -0
- topologies/models/imap.py +38 -0
- topologies/models/inception.py +94 -0
- topologies/models/infovae.py +65 -0
- topologies/models/ipa.py +69 -0
- topologies/models/ipo.py +31 -0
- topologies/models/iqn.py +52 -0
- topologies/models/item_knn.py +26 -0
- topologies/models/itransformer.py +31 -0
- topologies/models/jamba_griffin_hawk.py +155 -0
- topologies/models/kto.py +38 -0
- topologies/models/ladder_vae.py +66 -0
- topologies/models/latent_diffusion.py +303 -0
- topologies/models/lenet.py +42 -0
- topologies/models/lfq.py +22 -0
- topologies/models/lightgcn.py +107 -0
- topologies/models/line.py +45 -0
- topologies/models/llama.py +171 -0
- topologies/models/llama_decoder.py +84 -0
- topologies/models/lnn.py +59 -0
- topologies/models/longformer.py +106 -0
- topologies/models/lstnet.py +45 -0
- topologies/models/maddpg.py +50 -0
- topologies/models/maf.py +57 -0
- topologies/models/magvit.py +89 -0
- topologies/models/mamba2_gated_deltanet_h3.py +122 -0
- topologies/models/mappo.py +60 -0
- topologies/models/marian.py +105 -0
- topologies/models/mask2former.py +46 -0
- topologies/models/mask_rcnn.py +26 -0
- topologies/models/masked_image.py +62 -0
- topologies/models/maskfeat.py +80 -0
- topologies/models/maskgit.py +87 -0
- topologies/models/matcha_tts.py +55 -0
- topologies/models/matchboxnet.py +36 -0
- topologies/models/matrix_factorization.py +31 -0
- topologies/models/mistral.py +153 -0
- topologies/models/mistral_decoder.py +103 -0
- topologies/models/mixtral.py +180 -0
- topologies/models/mlp.py +50 -0
- topologies/models/mobilenet_v2.py +60 -0
- topologies/models/modern_conv.py +99 -0
- topologies/models/modernbert.py +182 -0
- topologies/models/mpo.py +47 -0
- topologies/models/mult_vae.py +48 -0
- topologies/models/music_transformer.py +61 -0
- topologies/models/musicgen.py +102 -0
- topologies/models/muzero.py +59 -0
- topologies/models/mvit.py +42 -0
- topologies/models/nbeats.py +66 -0
- topologies/models/neural_ode.py +26 -0
- topologies/models/neural_spline_flows.py +78 -0
- topologies/models/nextitnet.py +69 -0
- topologies/models/ngcf.py +60 -0
- topologies/models/nhits.py +68 -0
- topologies/models/nice.py +33 -0
- topologies/models/noam.py +32 -0
- topologies/models/node.py +14 -0
- topologies/models/node_ensemble.py +62 -0
- topologies/models/noisy_nets.py +54 -0
- topologies/models/nvae.py +50 -0
- topologies/models/ot_cfm.py +103 -0
- topologies/models/pairre.py +27 -0
- topologies/models/panoptic.py +68 -0
- topologies/models/phi.py +186 -0
- topologies/models/pinn.py +29 -0
- topologies/models/pinsage.py +55 -0
- topologies/models/pix2pix.py +68 -0
- topologies/models/pixart.py +42 -0
- topologies/models/pixelcnn.py +26 -0
- topologies/models/pna.py +56 -0
- topologies/models/pnn.py +42 -0
- topologies/models/point_cloud.py +57 -0
- topologies/models/point_transformer.py +45 -0
- topologies/models/point_transformer_v2.py +67 -0
- topologies/models/pointpillars.py +78 -0
- topologies/models/poolformer.py +49 -0
- topologies/models/pos2d.py +51 -0
- topologies/models/pose.py +62 -0
- topologies/models/ppo_clip.py +18 -0
- topologies/models/progan.py +39 -0
- topologies/models/prompt_seg.py +71 -0
- topologies/models/q_network.py +23 -0
- topologies/models/qmix.py +58 -0
- topologies/models/qr_dqn.py +56 -0
- topologies/models/qwen.py +136 -0
- topologies/models/rag_fid.py +90 -0
- topologies/models/realnvp.py +84 -0
- topologies/models/recurrent_models.py +102 -0
- topologies/models/regnet.py +75 -0
- topologies/models/resmlp.py +72 -0
- topologies/models/resnet.py +80 -0
- topologies/models/resnet_v1d.py +79 -0
- topologies/models/resnet_variants.py +102 -0
- topologies/models/retinanet.py +120 -0
- topologies/models/retnet.py +111 -0
- topologies/models/retro.py +90 -0
- topologies/models/reversible_residual.py +18 -0
- topologies/models/rgcn.py +139 -0
- topologies/models/rloo.py +32 -0
- topologies/models/rnd.py +19 -0
- topologies/models/rq_transformer.py +56 -0
- topologies/models/rq_vae.py +46 -0
- topologies/models/rwkv.py +132 -0
- topologies/models/s4.py +99 -0
- topologies/models/sac.py +98 -0
- topologies/models/sagan.py +37 -0
- topologies/models/sagpool.py +35 -0
- topologies/models/sasrec.py +59 -0
- topologies/models/segment.py +77 -0
- topologies/models/sentence_bert.py +21 -0
- topologies/models/sentence_encoder.py +38 -0
- topologies/models/sepformer.py +97 -0
- topologies/models/seq2seq.py +169 -0
- topologies/models/set_detect.py +72 -0
- topologies/models/setr.py +36 -0
- topologies/models/sgc.py +39 -0
- topologies/models/sgc_precompute.py +30 -0
- topologies/models/siglip.py +35 -0
- topologies/models/sign.py +28 -0
- topologies/models/sim.py +56 -0
- topologies/models/simclr.py +32 -0
- topologies/models/sincnet.py +54 -0
- topologies/models/single_stage_detect.py +79 -0
- topologies/models/sit.py +31 -0
- topologies/models/sngan.py +30 -0
- topologies/models/solov2.py +38 -0
- topologies/models/sortpool.py +49 -0
- topologies/models/soundstream.py +33 -0
- topologies/models/spade.py +36 -0
- topologies/models/spanbert.py +295 -0
- topologies/models/sr_gnn.py +88 -0
- topologies/models/static_embeddings.py +68 -0
- topologies/models/stylegan3.py +26 -0
- topologies/models/swin.py +99 -0
- topologies/models/swin_unet.py +146 -0
- topologies/models/t5.py +162 -0
- topologies/models/tabtransformer.py +68 -0
- topologies/models/tabular_mlp.py +104 -0
- topologies/models/tacotron2.py +64 -0
- topologies/models/tc_resnet.py +62 -0
- topologies/models/tcvae.py +51 -0
- topologies/models/td3.py +76 -0
- topologies/models/td3_bc.py +44 -0
- topologies/models/temporal_convnet.py +53 -0
- topologies/models/text_cnn.py +57 -0
- topologies/models/tf_gridnet.py +27 -0
- topologies/models/tft.py +290 -0
- topologies/models/token_mixer.py +73 -0
- topologies/models/transformer_models.py +174 -0
- topologies/models/transformer_xl.py +142 -0
- topologies/models/transitional_text.py +97 -0
- topologies/models/tsm.py +39 -0
- topologies/models/two_stage_detect.py +84 -0
- topologies/models/u_vit.py +52 -0
- topologies/models/ul2.py +204 -0
- topologies/models/unet.py +54 -0
- topologies/models/unipc.py +62 -0
- topologies/models/v_pred.py +24 -0
- topologies/models/vae_mlp.py +67 -0
- topologies/models/variational_autoencoders.py +129 -0
- topologies/models/vgg.py +60 -0
- topologies/models/video_conv.py +57 -0
- topologies/models/video_ssl.py +51 -0
- topologies/models/video_transformer.py +66 -0
- topologies/models/vision_neck.py +64 -0
- topologies/models/vision_norm.py +76 -0
- topologies/models/vision_ssl.py +93 -0
- topologies/models/vision_transformer.py +75 -0
- topologies/models/vit_22b.py +23 -0
- topologies/models/vit_encoder.py +88 -0
- topologies/models/volume_seg.py +55 -0
- topologies/models/voxel_detect.py +53 -0
- topologies/models/vqvae.py +70 -0
- topologies/models/wav2vec2.py +29 -0
- topologies/models/wavenet.py +80 -0
- topologies/models/wgan.py +32 -0
- topologies/models/wgan_gp.py +58 -0
- topologies/models/wide_and_deep.py +31 -0
- topologies/models/world_model.py +73 -0
- topologies/models/x3d.py +168 -0
- topologies/models/x_vector.py +27 -0
- topologies/models/xdeepfm.py +49 -0
- topologies/models/xlnet.py +261 -0
- topologies/models/xlstm.py +98 -0
- topologies/models/xmem.py +500 -0
- topologies/models/xtts.py +40 -0
- topologies/models/yolov3.py +45 -0
- topologies/models/yourtts.py +21 -0
- topologies/nn/__init__.py +73 -0
- topologies/nn/aux.py +51 -0
- topologies/nn/causal.py +401 -0
- topologies/nn/layers.py +317 -0
- topologies/nn/mixers.py +246 -0
- topologies/nn/models.py +552 -0
- topologies/nn/slots.py +230 -0
- topologies/optimization/__init__.py +95 -0
- topologies/optimization/_torch_ao.py +50 -0
- topologies/optimization/artifacts.py +396 -0
- topologies/optimization/contracts.py +90 -0
- topologies/optimization/distillation.py +632 -0
- topologies/optimization/integrations.py +256 -0
- topologies/optimization/pruning.py +416 -0
- topologies/optimization/quantization.py +1261 -0
- topologies/optimization/recommendations.py +165 -0
- topologies/optimization/reporting.py +91 -0
- topologies/optimization/torchao_pt2e.py +781 -0
- topologies/optimization/workflow.py +368 -0
- topologies/optimizers/catalog.json +136 -0
- topologies/pretrained.py +278 -0
- topologies/registry/__init__.py +6 -0
- topologies/registry/api.py +59 -0
- topologies/registry/index.py +165 -0
- topologies/registry/loader.py +75 -0
- topologies/registry/validate.py +470 -0
- topologies/synth/__init__.py +178 -0
- topologies/synth/attributes.py +570 -0
- topologies/synth/blueprints/__init__.py +65 -0
- topologies/synth/blueprints/_base.py +126 -0
- topologies/synth/blueprints/algorithmic.py +312 -0
- topologies/synth/blueprints/reasoning.py +42 -0
- topologies/synth/blueprints/structured.py +240 -0
- topologies/synth/blueprints/vision.py +88 -0
- topologies/synth/cli.py +501 -0
- topologies/synth/codecs.py +215 -0
- topologies/synth/core.py +1331 -0
- topologies/synth/counterfactuals.py +162 -0
- topologies/synth/ctor.py +110 -0
- topologies/synth/dataset.py +433 -0
- topologies/synth/dists.py +461 -0
- topologies/synth/dsp.py +352 -0
- topologies/synth/errors.py +68 -0
- topologies/synth/evaluate.py +659 -0
- topologies/synth/export.py +150 -0
- topologies/synth/fingerprint.py +124 -0
- topologies/synth/generators/__init__.py +0 -0
- topologies/synth/generators/augment.py +12 -0
- topologies/synth/generators/base.py +200 -0
- topologies/synth/generators/grammar.py +5 -0
- topologies/synth/generators/program.py +9 -0
- topologies/synth/introspect.py +107 -0
- topologies/synth/jsonutil.py +241 -0
- topologies/synth/langid.py +150 -0
- topologies/synth/lib/__init__.py +105 -0
- topologies/synth/lib/audio/__init__.py +768 -0
- topologies/synth/lib/graph/__init__.py +340 -0
- topologies/synth/lib/image/__init__.py +762 -0
- topologies/synth/lib/math/__init__.py +175 -0
- topologies/synth/lib/math/expr.py +191 -0
- topologies/synth/lib/process/__init__.py +231 -0
- topologies/synth/lib/random/__init__.py +240 -0
- topologies/synth/lib/seq/__init__.py +418 -0
- topologies/synth/lib/series/__init__.py +268 -0
- topologies/synth/lib/tabular/__init__.py +733 -0
- topologies/synth/lib/text/__init__.py +53 -0
- topologies/synth/lib/text/faker.py +227 -0
- topologies/synth/lib/text/formats.py +165 -0
- topologies/synth/lib/text/generate.py +346 -0
- topologies/synth/lib/text/grammar.py +189 -0
- topologies/synth/lib/text/legacy.py +118 -0
- topologies/synth/lib/text/noise.py +357 -0
- topologies/synth/lib/text/numbers.py +115 -0
- topologies/synth/lib/text/packs/de/faker.yaml +143 -0
- topologies/synth/lib/text/packs/de/keyboard.yaml +2 -0
- topologies/synth/lib/text/packs/de/translit.yaml +6 -0
- topologies/synth/lib/text/packs/en/faker.yaml +174 -0
- topologies/synth/lib/text/packs/en/keyboard.yaml +3 -0
- topologies/synth/lib/text/packs/en/lexicon.yaml +4 -0
- topologies/synth/lib/text/packs/en/numbers.yaml +34 -0
- topologies/synth/lib/text/packs/en/paradigms.yaml +1 -0
- topologies/synth/lib/text/packs/en/pools.yaml +7 -0
- topologies/synth/lib/text/packs/en/translit.yaml +1 -0
- topologies/synth/lib/text/packs/uk/faker.yaml +121 -0
- topologies/synth/lib/text/packs/uk/keyboard.yaml +3 -0
- topologies/synth/lib/text/packs/uk/lexicon.yaml +17 -0
- topologies/synth/lib/text/packs/uk/numbers.yaml +54 -0
- topologies/synth/lib/text/packs/uk/paradigms.yaml +20 -0
- topologies/synth/lib/text/packs/uk/pools.yaml +7 -0
- topologies/synth/lib/text/packs/uk/translit.yaml +37 -0
- topologies/synth/lib/text/packs.py +122 -0
- topologies/synth/lib/text/pools.py +58 -0
- topologies/synth/lib/text/slots.py +94 -0
- topologies/synth/lib/text/template.py +357 -0
- topologies/synth/limits.py +83 -0
- topologies/synth/loop.py +390 -0
- topologies/synth/ops/__init__.py +66 -0
- topologies/synth/ops/_callable.py +29 -0
- topologies/synth/ops/augment.py +171 -0
- topologies/synth/ops/balance.py +154 -0
- topologies/synth/ops/base.py +235 -0
- topologies/synth/ops/contamination.py +191 -0
- topologies/synth/ops/dedup.py +402 -0
- topologies/synth/ops/filters.py +186 -0
- topologies/synth/ops/label.py +230 -0
- topologies/synth/ops/parse.py +118 -0
- topologies/synth/ops/split.py +217 -0
- topologies/synth/ops/validate.py +95 -0
- topologies/synth/ops/verify.py +530 -0
- topologies/synth/overrides.py +225 -0
- topologies/synth/pipeline.py +1054 -0
- topologies/synth/planning.py +243 -0
- topologies/synth/pools.py +19 -0
- topologies/synth/previews.py +187 -0
- topologies/synth/quality/__init__.py +34 -0
- topologies/synth/quality/embed.py +87 -0
- topologies/synth/quality/fidelity.py +421 -0
- topologies/synth/quality/insights.py +202 -0
- topologies/synth/quality/intrinsic.py +406 -0
- topologies/synth/quality/privacy.py +85 -0
- topologies/synth/quality/report.py +356 -0
- topologies/synth/quality/slices.py +118 -0
- topologies/synth/quality/utility.py +363 -0
- topologies/synth/records.py +171 -0
- topologies/synth/report.py +195 -0
- topologies/synth/reviewing.py +332 -0
- topologies/synth/rng.py +225 -0
- topologies/synth/runtime.py +33 -0
- topologies/synth/sampling.py +613 -0
- topologies/synth/schema.py +268 -0
- topologies/synth/spec.py +366 -0
- topologies/synth/store.py +374 -0
- topologies/synth/streaming.py +241 -0
- topologies/synth/tasks.py +717 -0
- topologies/synth/textutil.py +287 -0
- topologies/synth/torch_views.py +1157 -0
- topologies/synth/valuetypes.py +1741 -0
- topologies/synth/verdict.py +74 -0
- topologies/synth/versions.py +218 -0
- topologies/synth/yaml_spec.py +600 -0
- topologies/taxonomy/__init__.py +8 -0
- topologies/taxonomy/validate.py +74 -0
- topologies/tokenizers/__init__.py +78 -0
- topologies/tokenizers/base.py +350 -0
- topologies/tokenizers/bpe.py +190 -0
- topologies/tokenizers/hf.py +157 -0
- topologies/tokenizers/simple.py +139 -0
- topologies/tokenizers/stats.py +86 -0
- topologies/training/__init__.py +88 -0
- topologies/training/_checkpointing.py +232 -0
- topologies/training/_loops.py +215 -0
- topologies/training/_observability.py +148 -0
- topologies/training/_optim_factory.py +341 -0
- topologies/training/_run_info.py +93 -0
- topologies/training/_step_metrics.py +128 -0
- topologies/training/_steps.py +358 -0
- topologies/training/_trainer_config.py +50 -0
- topologies/training/adapters.py +207 -0
- topologies/training/aux.py +62 -0
- topologies/training/bart_data.py +124 -0
- topologies/training/byt5_data.py +99 -0
- topologies/training/callbacks.py +73 -0
- topologies/training/canine_data.py +69 -0
- topologies/training/charformer_data.py +65 -0
- topologies/training/checkpoint.py +207 -0
- topologies/training/components.py +106 -0
- topologies/training/configs.py +309 -0
- topologies/training/data.py +203 -0
- topologies/training/device.py +103 -0
- topologies/training/distributed.py +165 -0
- topologies/training/engine.py +1085 -0
- topologies/training/errors.py +61 -0
- topologies/training/introspect.py +19 -0
- topologies/training/logging/__init__.py +21 -0
- topologies/training/logging/base.py +82 -0
- topologies/training/logging/factory.py +69 -0
- topologies/training/logging/jsonl.py +210 -0
- topologies/training/logging/tabular.py +125 -0
- topologies/training/logging/text.py +137 -0
- topologies/training/logging_.py +23 -0
- topologies/training/losses.py +218 -0
- topologies/training/marian_data.py +51 -0
- topologies/training/model_recipes.json +1331 -0
- topologies/training/monitoring/__init__.py +15 -0
- topologies/training/monitoring/base.py +55 -0
- topologies/training/monitoring/dashboard/__init__.py +17 -0
- topologies/training/monitoring/dashboard/app.py +87 -0
- topologies/training/monitoring/dashboard/charts.py +50 -0
- topologies/training/monitoring/dashboard/state.py +202 -0
- topologies/training/monitoring/dashboard/views.py +36 -0
- topologies/training/monitoring/dashboard/widgets.py +64 -0
- topologies/training/monitoring/factory.py +88 -0
- topologies/training/monitoring/standard.py +264 -0
- topologies/training/monitoring/system.py +112 -0
- topologies/training/recipe_base.py +447 -0
- topologies/training/recipes/__init__.py +30 -0
- topologies/training/recipes/audio.py +88 -0
- topologies/training/recipes/autoenc.py +124 -0
- topologies/training/recipes/canine.py +47 -0
- topologies/training/recipes/classify.py +440 -0
- topologies/training/recipes/contrastive.py +83 -0
- topologies/training/recipes/density.py +50 -0
- topologies/training/recipes/detection.py +118 -0
- topologies/training/recipes/diffusion.py +88 -0
- topologies/training/recipes/distillation.py +128 -0
- topologies/training/recipes/gan.py +142 -0
- topologies/training/recipes/graph.py +29 -0
- topologies/training/recipes/lm.py +935 -0
- topologies/training/recipes/mixtral.py +66 -0
- topologies/training/recipes/permutation_lm.py +134 -0
- topologies/training/recipes/ppo.py +233 -0
- topologies/training/recipes/recommender.py +104 -0
- topologies/training/recipes/router_probe.py +63 -0
- topologies/training/recipes/segmentation.py +76 -0
- topologies/training/recipes/spanbert.py +125 -0
- topologies/training/recipes/speech.py +35 -0
- topologies/training/recipes/static.py +28 -0
- topologies/training/recipes/structured_objective.py +64 -0
- topologies/training/recipes/transformer_xl.py +76 -0
- topologies/training/recipes/tts.py +86 -0
- topologies/training/recipes/value_learning.py +39 -0
- topologies/training/recipes/vision.py +555 -0
- topologies/training/registries.py +573 -0
- topologies/training/reporting/__init__.py +35 -0
- topologies/training/reporting/events.py +210 -0
- topologies/training/reporting/reporter.py +204 -0
- topologies/training/resolve.py +248 -0
- topologies/training/schema.py +4 -0
- topologies/training/stability/activation_offload.py +6 -0
- topologies/training/stability/bf16_recipe.py +6 -0
- topologies/training/stability/compile_parity.py +6 -0
- topologies/training/stability/fsdp_wrap.py +6 -0
- topologies/training/stability/grad_checkpoint.py +16 -0
- topologies/training/stability/grad_clip.py +57 -0
- topologies/training/stability/llrd.py +8 -0
- topologies/training/stability/loss_scale.py +6 -0
- topologies/training/stability/nan_skip.py +8 -0
- topologies/training/stability/zero_partition.py +6 -0
- topologies/training/t5_data.py +90 -0
- topologies/training/ul2_data.py +62 -0
- topologies/training-artifacts.lock.json +302 -0
- topologies/training_schema.py +99 -0
- topologies/utils/__init__.py +8 -0
- topologies/utils/locking.py +80 -0
- topologies/utils/logging.py +40 -0
- topologies/validation/__init__.py +4 -0
- topologies/validation/catalog_specs.json +953 -0
- topologies/validation/catalog_specs.py +65 -0
- topologies/validation/catalog_workflows.py +1854 -0
- topologies/validation/component_workflows.py +588 -0
- topologies/validation/framework.py +151 -0
- topologies/validation/gate.py +87 -0
- topologies/validation/implementation.py +35 -0
- topologies/validation/source_style.py +23 -0
- topologies/visualization/__init__.py +103 -0
- topologies/visualization/adapters.py +225 -0
- topologies/visualization/core.py +872 -0
- topologies/visualization/experiment_views.py +765 -0
- topologies/visualization/format.py +322 -0
- topologies/visualization/live.py +223 -0
- topologies/visualization/matplotlib/__init__.py +498 -0
- topologies/visualization/matplotlib/live.py +247 -0
- topologies/visualization/matplotlib/style.py +262 -0
- topologies/visualization/matplotlib/views/__init__.py +84 -0
- topologies/visualization/matplotlib/views/analysis.py +182 -0
- topologies/visualization/matplotlib/views/engineering.py +206 -0
- topologies/visualization/matplotlib/views/experiments.py +344 -0
- topologies/visualization/matplotlib/views/generic.py +87 -0
- topologies/visualization/matplotlib/views/hardware.py +64 -0
- topologies/visualization/matplotlib/views/profile.py +77 -0
- topologies/visualization/matplotlib/views/training.py +286 -0
- topologies/visualization/matplotlib_views.py +325 -0
- topologies/visualization/state.py +989 -0
- topologies/visualization/terminal/__init__.py +133 -0
- topologies/visualization/terminal/caps.py +195 -0
- topologies/visualization/terminal/driver.py +356 -0
- topologies/visualization/terminal/glyphs.py +102 -0
- topologies/visualization/terminal/keys.py +146 -0
- topologies/visualization/terminal/layout.py +162 -0
- topologies/visualization/terminal/panels.py +128 -0
- topologies/visualization/terminal/progress.py +76 -0
- topologies/visualization/terminal/screen.py +503 -0
- topologies/visualization/terminal/text.py +401 -0
- topologies/visualization/terminal/widgets.py +967 -0
- topologies/visualization/testing.py +827 -0
- topologies/visualization/theme.py +252 -0
- topologies/visualization/training_views.py +1280 -0
- topologies/visualization/views.py +143 -0
- topologies-0.0.1.dist-info/METADATA +143 -0
- topologies-0.0.1.dist-info/RECORD +1725 -0
- topologies-0.0.1.dist-info/WHEEL +4 -0
- topologies-0.0.1.dist-info/entry_points.txt +2 -0
- 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
|
topologies/_execution.py
ADDED
|
@@ -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."""
|