Use PyTorch instead of NumPy #10
@ -113,11 +113,12 @@ class AoA:
|
|||||||
|
|
||||||
def evaluate(self, theta: torch.Tensor, tof: torch.Tensor) -> torch.Tensor:
|
def evaluate(self, theta: torch.Tensor, tof: torch.Tensor) -> torch.Tensor:
|
||||||
R = torch.mean(self.historical_autocorr, dim=0)
|
R = torch.mean(self.historical_autocorr, dim=0)
|
||||||
|
assert (R == torch.conj(R).T).all()
|
||||||
|
|
||||||
# The smallest eigenvectors span the noise subspace,
|
# The smallest eigenvectors span the noise subspace,
|
||||||
# and the largest span the signal subspace.
|
# and the largest span the signal subspace.
|
||||||
logger.debug(f"Calculating eigenvectors of R: {R.shape}")
|
logger.debug(f"Calculating eigenvectors of R: {R.shape}")
|
||||||
eigvals, eigvecs = torch.linalg.eig(R)
|
eigvals, eigvecs = torch.linalg.eigh(R)
|
||||||
assert isinstance(eigvals, torch.Tensor)
|
assert isinstance(eigvals, torch.Tensor)
|
||||||
assert isinstance(eigvecs, torch.Tensor)
|
assert isinstance(eigvecs, torch.Tensor)
|
||||||
logger.info(f"Eigenvalues: {eigvals}")
|
logger.info(f"Eigenvalues: {eigvals}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user