Coder Social home page Coder Social logo

interaction_network_paper's Introduction

Charged Particle Tracking via Edge-Classifying Interacting Networks

Repo Organization

  • models/ Several classes are defined to implement the interaction network and facilitate graph input/output:

    • interaction_network.py: network architecture implemented in PyTorch Geometric (PyG)
    • dataset.py: custom data loader for multi-threaded graph loading in the PyG Data representation
  • Graph Construction: Graph construction algorithms (in graph_construction/) process TrackML samples (e.g. train_1) into hitgraphs, which are defined as tuples of node features, edge features, truth labels, and edge indices in COOrdinate format. Several graph construction algorithms are available, each of which is configured by a set of particle-specific and geometric edge selections:

    • build_geometric.py: geometric edge selection algorithm to build graphs in the pixel barrel layers, example usage:
      python build_geometric.py configs/geometric.py
    • build_pre-clustering.py: DBSCAN clustering algorithm used build graphs via clustering in eta-phi space, example usage:
      python build_pre-clustering.py configs/pre-clustering.py
    • build_data-driven.py: module map method used to build graphs based on previously observed data, example usage:
      python build_pre-clustering.py configs/pre-clustering.py
      • Note that a module map is necessary to run this graph construction method. Module maps are built and stored in the graph_construction/module_maps directory. Note that an orthogonal data sample should be used to construct the module map; for example, to build graphs from train_1, a module map from train_<2-5>.
  • Training and Inference:

    • run_interaction_network.py: IN training script, example usage:
    python run_interaction_network.py --pt=1 --construction=heptrkx_plus --lr=0.005 --gamma=0.9 --save-model 
    • gnn_inference/ contains a script for testing the classification accuracy of a set of trained models
    • timing_scan_bash.py: inference timing script, example usage:
      • CPU-only inference:
      python timing_scan_bash.py --construction=heptrkx_plus_pyg --graphs=5 --batchsize=1 --loops=100 --repeat=5
      • GPU inference:
      python timing_scan_bash.py --gpu --construction=heptrkx_plus_pyg --graphs=5 --batchsize=1 --loops=100 --repeat=5
    • Note, the code assumes some hitgraphs are located in the following directory structure
      hitgraphs
      ├── heptrkx_plus_pyg_0GeV5
      ├── heptrkx_plus_pyg_0GeV6
      ├── heptrkx_plus_pyg_0GeV7
      ├── heptrkx_plus_pyg_0GeV8
      ├── heptrkx_plus_pyg_0GeV9
      ├── heptrkx_plus_pyg_1GeV
      ├── heptrkx_plus_pyg_1GeV5
      └── heptrkx_plus_pyg_2GeV
      
  • Track Building:

    • Track building algorithms cluster hits in the edge-weigted graphs. Several tracking efficiency definitions are implemented in track_building/measure_tracking_effs.py and are reported per sample, per pt, and per eta.

interaction_network_paper's People

Contributors

gagedezoort avatar jmduarte avatar

Stargazers

 avatar Kush Kothari avatar Lucas Curtin avatar Gagik Gavalian avatar  avatar  avatar Kilian Lieret avatar Ameya Thete avatar Adeel Akram avatar  avatar Lucas Santiago Borgna avatar  avatar STYLIANOS IORDANIS avatar Berenice Ramos  avatar  avatar  avatar Emily Tsai avatar  avatar Mark Neubauer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.