File: //opt/nerfstudio/tests/model_components/test_losses.py
"""
Test losses
"""
import torch
from nerfstudio.model_components.losses import tv_loss
def test_tv_loss():
"""Test total variation loss"""
grids = torch.ones([3, 64, 128, 128])
assert tv_loss(grids).item() == 0
grids = torch.zeros([1, 10, 100, 100])
for i in range(100):
for j in range(100):
grid_location = (i + j) % 2
for k in range(10):
grids[0, k, i, j] = grid_location
# TV_row = 1, TV_col = 1. Total tv should be 2 * (TV_row + TV_col)
assert tv_loss(grids).item() == 4.0
if __name__ == "__main__":
test_tv_loss()