ivis.models

class ivis.models.Classic3D(lambda_r=1, use_2pi=True, conj_data=True)[source]

Bases: BaseModel

backward(vis, vis_data, device, x_shape=None, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, return_real=False)
forward(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fill_flagged='zero')
loss(x, shape, device, vis_data, **kwargs)[source]

Compute scalar loss and gradient for optimization.

Parameters:

x (np.ndarray) – Flattened parameter vector.

Returns:

  • loss (float) – Scalar loss.

  • grad (np.ndarray) – Flattened gradient.

objective(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fftsd=None, fftbeam=None, tapper=None, lambda_sd=0.0, lambda_pos=0.0, fftkernel=None, beam_workers=4, verbose=False, **_)[source]
class ivis.models.Classic3DHighMemory(lambda_r=1, use_2pi=True, conj_data=True)[source]

Bases: Classic3D

Classic3D variant that accumulates the full objective graph before backward.

This can be faster for small problems, but peak memory grows with the number of beam blocks processed by each objective call.

objective(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fftsd=None, fftbeam=None, tapper=None, lambda_sd=0.0, lambda_pos=0.0, fftkernel=None, beam_workers=4, verbose=False, **_)[source]
class ivis.models.LRSB(basis, lambda_r=1.0, lambda_pos=0.0, conj_data=True, assume_channel_invariant_operator=False, reference_channel=0)[source]

Bases: BaseModel

Low-rank spectral basis model driven by a user-supplied basis matrix.

The basis must have shape (nbasis, nchan).

forward(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fill_flagged='zero')
loss(x, shape, device, vis_data, **kwargs)[source]

Compute scalar loss and gradient for optimization.

Parameters:

x (np.ndarray) – Flattened parameter vector.

Returns:

  • loss (float) – Scalar loss.

  • grad (np.ndarray) – Flattened gradient.

property nbasis
property nchan
objective(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fftsd=None, fftbeam=None, tapper=None, lambda_sd=0.0, lambda_pos=None, fftkernel=None, beam_workers=4, verbose=False, **_)[source]
reconstruct_cube(x, device=None, return_numpy=False)[source]
reconstruct_cube_from_coeffs(coeffs, device=None, return_numpy=True)[source]
class ivis.models.LRSBMemory(basis, lambda_r=1.0, lambda_pos=0.0, conj_data=True, assume_channel_invariant_operator=False, reference_channel=0)[source]

Bases: LRSB

Memory-streaming LRSB variant.

LRSB stores a smaller coefficient cube than Classic3D, but its objective still accumulates one large autograd graph by default. This variant backpropagates independent loss blocks as soon as they are computed.

objective(x, vis_data, device, primary_beam_list=None, primary_beam=None, pb_list=None, grid_list=None, pb=None, grid_array=None, cell_size=None, fftsd=None, fftbeam=None, tapper=None, lambda_sd=0.0, lambda_pos=None, fftkernel=None, beam_workers=4, verbose=False, **_)[source]
class ivis.models.LRSB_C(basis, continuum_basis=None, continuum_order=0, frequency=None, reference_frequency=None, continuum_only_channels=None, lambda_r_line_factor=1.0, lambda_r_cont_factor=1.0, **kwargs)[source]

Bases: LRSB

LRSB variant with explicit continuum basis functions.

This augments the learned line basis with fixed smooth spectral modes. By default, it adds a single flat continuum mode psi_0(nu) = 1.

property continuum_basis
property continuum_nbasis
property continuum_only_channels
property continuum_order
property line_nbasis
reconstruct_continuum_cube(x, device=None, return_numpy=False)[source]
reconstruct_line_cube(x, device=None, return_numpy=False)[source]
property reference_frequency
split_coeffs(x)[source]
class ivis.models.LRSB_CMemory(basis, continuum_basis=None, continuum_order=0, frequency=None, reference_frequency=None, continuum_only_channels=None, lambda_r_line_factor=1.0, lambda_r_cont_factor=1.0, **kwargs)[source]

Bases: LRSBMemory, LRSB_C

Memory-streaming LRSB_C variant.

This combines the hybrid line+continuum basis construction from LRSB_C with the blockwise backward pass from LRSBMemory.

Modules