Menu

Deep learning for NeuroImaging in Python.

Note

This page is a reference documentation. It only explains the class signature, and not how to use it. Please refer to the gallery for the big picture.

class surfify.nn.modules.IcoMaxIndexUpSample(in_feats, out_feats, up_neigh_indices, down_indices)[source]

The upsampling layer on icosahedron discretized sphere using max indices.

Notes

Debuging messages can be displayed by changing the log level using setup_logging(level='debug').

Examples

>>> import torch
>>> from surfify.nn import IcoMaxIndexUpSample
>>> from surfify.utils import downsample, icosahedron, neighbors
>>> ico2_vertices, ico2_triangles = icosahedron(order=2)
>>> ico3_vertices, ico3_triangles = icosahedron(order=3)
>>> neighbor_indices = neighbors(
        ico3_vertices, ico3_triangles, depth=1, direct_neighbor=True)
>>> neighbor_indices = np.asarray(list(neighbor_indices.values()))
>>> down_neigh_indices = neighbors(
        ico2_vertices, ico2_triangles, depth=1, direct_neighbor=True)
>>> down_neigh_indices = np.asarray(list(down_neigh_indices.values()))
>>> down_indices = downsample(ico3_vertices, ico2_vertices)
>>> module = IcoPool(
        down_neigh_indices=down_neigh_indices,
        down_indices=down_indices, pooling_type="max")
>>> ico3_x = torch.zeros((10, 4, len(ico3_vertices)))
>>> _, max_pool_indices = module(ico3_x)
>>> module = IcoMaxIndexUpSample(
        in_feats=8, out_feats=4, up_neigh_indices=neighbor_indices,
        down_indices=down_indices)
>>> ico2_x = torch.zeros((10, 8, len(ico2_vertices)))
>>> ico3_x = module(ico2_x, max_pool_indices)
>>> ico2_x.shape, ico3_x.shape

Init IcoMaxIndexUpSample.

Parameters:

in_feats : int

input features/channels.

out_feats : int

output features/channels.

up_neigh_indices : array

upsampling neighborhood indices at sampling i + 1.

down_indices : array

downsampling indices at sampling i.

forward(x, max_pool_indices)[source]

Forward method.

Follow us

© 2025, nidl developers