Closed CharlesGaydon closed 9 months ago
Sujet 1 : pourquoi un seul sample dans ce batch d'apprentissage -> on ajoute drop_last à tout hasard. -> l'erreur à l'apprentissage disparait 🥳
Sujet 2 : comment conserver la fonctionnalité "Prédire un unique nuage avec un unique point", situation qui peut arriver en inférence.
-> En fait on avait oublié la transform MinimumNumNodes
. Celle-ci est supposée dupliquer des points pour éviter les erreurs au sein du modèle. MAIS : maintenant qu'on accepte les nuages de points ayant num_nodes=1, on rentre dans un cas limite de la fonction subsample_data
qui est impliquée dans MinimumNumNodes
. la condition and item.size(0) != 1:
est atteinte ce qui empêche la transform d'être appliquée !
-> Pas de raison d'être de cette condition : elle avait été ajoutée à FixedPoints pour gérer un cas différent à la suite de cette discussion .
Sujet 2 devra être réglé en supprimant la condition and item.size(0) != 1
susmentionnée.
Pas reproductible. Rouvrir si le problème se représente.
J'ai d'abord cru que c'était du à la configuration par défaut des DataLoader pour laquelle
drop_last=False
. Mais l'erreur n'apparaît pas en fin d'epoch mais avant : à 93% de la donnée (et on est bien au training_step d'après les logs)ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 512])
La taille 1,512 m'évoque cependant un combo de :
Bon, sans avoir l'explication de pourquoi la situation se présente ici, elle peut se présenter sur des données normalesqu'on découpe à la volée donc ça vaut le coup de s'en soucier.
drop_last=True
~Autrement : dans cette situation le bloc qui n'accepte pas un unique point est
mlp_summit
. Peut-être que garder minimum deux points dans la décimation qui précède directement mlp_summit est une solution plus efficace. Dans ce cas ça se passe dans ces lignes :~~On passe de~
~à~
~sans impact sur le comportement normal du modèle.~
Trace complète :