Closed MichelDaab closed 2 years ago
Je suis en train de parcourir pytorch (tuto, ce genre de chose), maintenant je sais que de définir "def len()" est une exigence de l'héritage de Dataset, donc cela répond à mon interrogation sur son existence.
Maintenant j'ai une autre petite remarque sur def getitem(), l'autre fonction qu'il faut définir. Voilà son code: filepath = self.files[idx] data = self.loading_function(filepath) if self.transform: data = self.transform(data) if data is None: return None if self.target_transform: data = self.target_transform(data) return data
Il est possible de faire l'économie de : if data is None: return None Puisque plus bas il y a un return data, qui retournera data quand il vaut "None", ce qui est bien le comportement voulu. Cela, à moins que self.target_transform(None) != None, mais cela métonnerait.
LidarMapDataset disparait dans https://github.com/IGNF/myria3d/pull/33
Dans datamodule.py il y a la classe lidardataset https://github.com/IGNF/myria3d/blob/main/myria3d/data/datamodule.py#L229
Il y a dans l'init: self.num_files = len(self.files)
et plus bas: def len(self): return self.num_files
self.num_files n'est jamais utilisé pour autre chose que pour cette fonction, pourquoi ne pas supprimer cet attribut interne pour ne garder que : def len(self): return len(self.files) A moins que self.files ne change de taille en cours de route et qu'on veuille garder sa valeur d'origine (ce dont je doute, à mon avis self.files conserve toujorus les mêmes fichiers et si ces ficheirs devaient changer nous voudrions au contraire leur nombre actuel et non celui d'origine).
D'ailleurs, est-ce que len(lidardataset) est utilisé quelque part ? Je ne l'ai pas vu