ivis.models.classic3D

Classes

Classic3D([lambda_r, use_2pi, conj_data])

Classic3DHighMemory([lambda_r, use_2pi, ...])

Classic3D variant that accumulates the full objective graph before backward.

class ivis.models.classic3D.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.classic3D.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]