pynif3d.encoding

class pynif3d.encoding.FourierEncoding(input_dimensions=3, output_dimensions=256, scale=10)

Bases: torch.nn.modules.module.Module

The implementation of the paper “Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains”. This class encodes input N-dimensional coordinates into M-dimensional gaussian distribution and applies trigonometric encoding.

For more details, please check https://arxiv.org/abs/2006.10739.

Usage:

encoder = FourierEncoding()
encoded_points = encoder(points)

Initializes internal Module state, shared by both nn.Module and ScriptModule.

forward(x)
Parameters

x (torch.Tensor) – Input tensor. Its shape is (number_of_samples, input_dimensions).

Returns

Tensor with shape

(number_of_samples, 2 * output_dimensions).

Return type

torch.Tensor

get_dimensions()
training: bool
class pynif3d.encoding.PositionalEncoding(is_include_input: bool = True, input_dimensions: int = 3, max_frequency: int = 9, num_frequency: int = 10, frequency_factor: float = 1.0, is_log_sampling: bool = True, periodic_functions: list = None)

Bases: torch.nn.modules.module.Module

The positional encoding class. It defines several frequency bands and applies several frequency responses to the input signal.

Usage:

encoder = PositionalEncoding()
encoded_points = encoder(points)
Parameters
  • is_include_input (bool) – Boolean flags indicating whether to include the input signal in the output (True) or not (False). Default is True.

  • input_dimensions (int) – The dimension of the input signal. Default is 3.

  • max_frequency (int) – The upper limit of the frequency band. The upper limit will be set to 2^max_frequency. Default is 9.

  • num_frequency (int) – The number of frequency samples within the spectrum. Default is 10.

  • frequency_factor (float) – The factor to multiply the frequency samples by. Default value is 1.0.

  • is_log_sampling (bool) – Boolean flag indicating whether sampling shall be done in log spectrum (True) or not (False). Default is True.

  • periodic_functions (list) – The periodic functions to be applied per frequency. Default is [sin, cos].

forward(x)
Parameters

x (torch.Tensor) – Input tensor. Its shape is (number_of_samples, sample_dimension).

Returns

Tensor with shape (number_of_samples, output_dimensions). output_dimensions can be obtained by calling the get_dimensions method.

Return type

torch.Tensor

get_dimensions()
training: bool