RecursionError when initializing KumoTabular with pretrained=True after #1153
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 74/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- machine-learning
Direzione di ricerca
Inizia da sdm/models/kumo/tabular/model.py, nel costruttore di KumoTabular intorno alla riga 139, dove il ramo pretrained assegna self.models[task] da _load_from_pretrained(), e leggi quel metodo per confermare che restituisce self e che carica i pesi sul posto. Rimuovi l'assegnazione in modo che la chiamata si limiti a caricare i pesi, poi costruisci il modello con pretrained=True per confermare che self.eval() venga completato. È fatto quando questa costruzione riesce senza RecursionError; dovrebbero passare anche i test esistenti del modello tabulare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Initializing KumoTabular with pretrained=True raises a
RecursionError during the constructor's self.eval() call.
This appears to be a regression introduced by #1153.
Reproduction
model = sdm.models.KumoTabular(
task="classification",
size="large",
pretrained=True,
device=device,
)
Actual behavior
Initialization fails with:
File sdm/models/kumo/tabular/model.py:139, in KumoTabular.__init__
self.eval()
File torch/nn/modules/module.py, in Module.eval
return self.train(False)
RecursionError: maximum recursion depth exceeded
Expected behavior
The pretrained model should initialize successfully in evaluation mode.
Suspected cause
#1153 changed _load_from_pretrained() to return self rather than
an individual task model, but the constructor still assigns its return
value to a child module:
self.models[task] = self._load_from_pretrained(size, device=device)
This effectively executes self.models[task] = self, creating a circular
module reference:
KumoTabular -> models -> KumoTabular
The subsequent self.eval() recursively traverses this cycle.
Suggested fix
Remove the assignment in the constructor:
if pretrained:
- self.models[task] = self._load_from_pretrained(size, device=device)
+ self._load_from_pretrained(size, device=device)
The loader already loads the weights into each task model in place via
model.load_state_dict(ckpt, assign=True).
Environment
- Python: 3.12
- Installation: local source checkout
- Related PR: #1153
- Lingua principale
- Python
- Stelle
- 358
- Fork
- 33
- Merge medio
- 1g 7h
- PR unite (30g)
- 182
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/structured-data-models
-
Kumo-Tabular weights unreachable behind restrictive egress proxies (Xet + plain HTTP both fail)Forse già presa @JGagacheva l’ha presa 3 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
NVIDIA/structured-data-models#1091 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
NIM errorAperta
Difficoltà 4/5 1-3 ore Idoneità per principianti 15/100
NVIDIA/structured-data-models#1136 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
NVIDIA/structured-data-models#1071 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 32/100
NVIDIA/structured-data-models#1022 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
NVIDIA/structured-data-models#947 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di NVIDIA/structured-data-models
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
common-workflow-language/cwl-utils#477 ·
I maintainer di solito rispondono entro 1 giorno
-
Add dependabotApertafeat
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 72/100
open-nudge/opentemplate#204 ·
I maintainer di solito rispondono entro 1 giorno
-
github-stale-ci-pr-closer: KV state is double-wrapped, never persists, and hits the depth-32 limitForse già presa @VascoSch92 l’ha presa oggi. Apertapriority:medium ready-for-dev
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenHands/extensions#781 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
curriculum documentation quality
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
githubnext/gh-aw-workshop#4638 ·
I maintainer di solito rispondono entro 1 giorno