IGNF / myria3d

Myria3D: Aerial Lidar HD Semantic Segmentation with Deep Learning
https://ignf.github.io/myria3d/
BSD 3-Clause "New" or "Revised" License
178 stars 23 forks source link

raison d'être de num_files dans LidarMapDataset #24

Closed MichelDaab closed 2 years ago

MichelDaab commented 2 years ago

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

MichelDaab commented 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.

CharlesGaydon commented 2 years ago

LidarMapDataset disparait dans https://github.com/IGNF/myria3d/pull/33