icecube_dnn

Implementation of the IceCube DNN image convolution model by Theo Glauch.

Based on the upgoing_muon_energy model from https://github.com/IceCubeOpenSource/i3deepice/tree/master

class graphnet.models.cnn.icecube_dnn.IceCubeDNN(*args, **kwargs)[source]

Bases: CNN

Implementation of the IceCube DNN by Theo Glauch.

An inception-based 3D CNN originally used within IceCube. Based on the model from https://github.com/IceCubeOpenSource/i3deepice/tree/master

Construct IceCubeDNN.

Parameters:
  • nb_inputs (int, default: 15) – Number of input features.

  • nb_outputs (int, default: 16) – Number of output features.

  • image_size (Tuple[int, int, int], default: (10, 10, 60)) – Spatial dimensions of the input image (height, width, depth).

  • inception_out_channels (int, default: 18) – Output channels per tower in each inception block.

  • inception_configs (List[Tuple[int, int, int]], default: [(2, 5, 8), (2, 3, 7), (2, 4, 8), (3, 5, 9), (2, 8, 9)]) – List of (t0, t1, t2) kernel size tuples for each InceptionBlock4 layer.

  • resnet_out_channels (int, default: 24) – Output channels per tower in each inception-resnet block.

  • resnet_t2_pattern (List[int], default: [3, 4, 5]) – Pattern of t2 kernel sizes repeated in each group of resnet blocks.

  • num_resblocks1_repeats (int, default: 6) – Number of times to repeat the resnet_t2_pattern in the first resnet stage.

  • num_resblocks2_repeats (int, default: 6) – Number of times to repeat the resnet_t2_pattern in the second resnet stage.

  • avgpool1_size (Tuple[int, int, int], default: (2, 2, 3)) – Kernel size for the first average pooling.

  • avgpool2_size (Tuple[int, int, int], default: (1, 1, 2)) – Kernel size for the second average pooling.

  • avgpool3_size (Tuple[int, int, int], default: (1, 1, 2)) – Kernel size for the third average pooling.

  • pointwise_channels (List[int], default: [64, 4]) – Output channels for each 1x1x1 convolution layer.

  • mlp_hidden_sizes (List[int], default: [120, 64]) – Hidden layer sizes for the final MLP. The input size is computed from the preceding layers and the output size is nb_outputs.

  • args (Any)

  • kwargs (Any)

Return type:

object

forward(data)[source]

Apply learnable forward pass in model.

Return type:

Tensor

Parameters:

data (Data)