Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Implementation) ParticleNet model #207

Open
Olmichu22 opened this issue Sep 20, 2024 · 4 comments
Open

(Implementation) ParticleNet model #207

Olmichu22 opened this issue Sep 20, 2024 · 4 comments

Comments

@Olmichu22
Copy link
Contributor

Context
In recent months I've been working with the CTLearn project due to my master's thesis. One on the main points was to compare the best model of CTLearn in mono (TRN) with a model used in particle classification problems; ParticleNet (PNet).

The main advantage is that PNet model has point cloud structured data as input, so it is possible to maintain the original distribution and geometry of the telescope(s).

Despite the fact that TRN achieves the best results, PNet is able to get good ones too, even though only 4 structures of the model have been tried.

Proposals
I would like to introduce ParticleNet model structure as a default model in CTLearn, as another option to performance tests in event reconstruction.

Also, it would be necessary to introduce some new options to process Data from image to point cloud.

Changes would be:

  • New module default models -> Particlenet.py
  • New default model configuration file.
  • New options in data_loader.py to handle point clouds.
  • Changes would need to be applied in DL1DataReader class to transform images to point clouds.

Tests
Until now, some basic tests have been performed with PNet, using the N pixels with the highest phe values. Some interesting tests regarding the data structure would be:

  • Transform the original image without interpolation directly in a point cloud.
  • Use only pixels with phe value different from 0.
  • Use a selection strategy that considers peak time, with a score similar to F1-Score formula.

Regarding the model structure:

  • Use squeeze-and-excitation residual connections.
  • Introduce channel-wise weighting.

References
TFM file and code (it is in spanish, sorry): https://github.com/Olmichu22/Repo-TFM-OAP
PNet Model Article: https://arxiv.org/abs/1902.08570

@TjarkMiener
Copy link
Member

Looks interesting @Olmichu22! To let you know that we are currently working on a new model API (Timeline are weeks), so it might be worth waiting for it and implement your PNet based on the new API.

For the changes to the DL1DataHandler in handling point clouds. Can you please have a look at dl1dh #PR143 and see if it could be done on top of the reader API?

@Olmichu22
Copy link
Contributor Author

Olmichu22 commented Sep 20, 2024

@TjarkMiener Perfect! I will wait until the API update is done.

Regarding DLH, I think it is perfectly possible to do it. I have just had an overview and maybe it could be done as a mapper function, or using the geometry info directly and modifying DLImageReader to allow point cloud processing too. Another option may be to create a new inherited class for point clouds.

@TjarkMiener
Copy link
Member

@Olmichu22 you can find a preliminary version of the new model API in this branch. Please try to based your ParticleNet model based on this API.

@Olmichu22
Copy link
Contributor Author

@Olmichu22 you can find a preliminary version of the new model API in this branch. Please try to based your ParticleNet model based on this API.

Thanks! I'll take a look at it and start implementation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants