Exemplo n.º 1
0
def test_make_gauss_rectangular():
    expected = torch.Tensor([
        [0.496683, 0.182719, 0.024728, 0.001231, 0.000023],
        [0.182719, 0.067219, 0.009097, 0.000453, 0.000008],
        [0.024728, 0.009097, 0.001231, 0.000061, 0.000001],
    ])
    actual = make_gauss(torch.Tensor([-1, -1]), [3, 5], sigma=1.0)
    assert_allclose(actual, expected, rtol=0, atol=1e-5)
Exemplo n.º 2
0
 def test_rectangular(self):
     expected = torch.Tensor([
         [0.496683, 0.182719, 0.024728, 0.001231, 0.000023],
         [0.182719, 0.067219, 0.009097, 0.000453, 0.000008],
         [0.024728, 0.009097, 0.001231, 0.000061, 0.000001],
     ])
     actual = make_gauss(torch.Tensor([-1, -1]), [3, 5], sigma=1.0)
     self.assertEqual(expected, actual, 1e-5)
Exemplo n.º 3
0
def test_make_gauss_2d():
    expected = torch.Tensor([
        [0.002969, 0.013306, 0.021938, 0.013306, 0.002969],
        [0.013306, 0.059634, 0.098320, 0.059634, 0.013306],
        [0.021938, 0.098320, 0.162103, 0.098320, 0.021938],
        [0.013306, 0.059634, 0.098320, 0.059634, 0.013306],
        [0.002969, 0.013306, 0.021938, 0.013306, 0.002969],
    ])
    actual = make_gauss(torch.Tensor([0, 0]), [5, 5], sigma=1.0)
    assert_allclose(actual, expected, rtol=0, atol=1e-5)
Exemplo n.º 4
0
 def test_2d(self):
     expected = torch.Tensor([
         [0.002969, 0.013306, 0.021938, 0.013306, 0.002969],
         [0.013306, 0.059634, 0.098320, 0.059634, 0.013306],
         [0.021938, 0.098320, 0.162103, 0.098320, 0.021938],
         [0.013306, 0.059634, 0.098320, 0.059634, 0.013306],
         [0.002969, 0.013306, 0.021938, 0.013306, 0.002969],
     ])
     actual = make_gauss(torch.Tensor([0, 0]), [5, 5], sigma=1.0)
     self.assertEqual(expected, actual, 1e-5)
Exemplo n.º 5
0
def test_make_gauss_3d():
    expected = torch.Tensor([[
        [0.000035, 0.000002, 0.000000],
        [0.009165, 0.000570, 0.000002],
        [0.147403, 0.009165, 0.000035],
    ], [
        [0.000142, 0.000009, 0.000000],
        [0.036755, 0.002285, 0.000009],
        [0.591145, 0.036755, 0.000142],
    ], [
        [0.000035, 0.000002, 0.000000],
        [0.009165, 0.000570, 0.000002],
        [0.147403, 0.009165, 0.000035],
    ]])
    actual = make_gauss(torch.Tensor([-1, 1, 0]), [3, 3, 3], sigma=0.6)
    assert_allclose(actual, expected, rtol=0, atol=1e-5)
Exemplo n.º 6
0
 def test_3d(self):
     expected = torch.Tensor([[
         [0.000035, 0.000002, 0.000000],
         [0.009165, 0.000570, 0.000002],
         [0.147403, 0.009165, 0.000035],
     ], [
         [0.000142, 0.000009, 0.000000],
         [0.036755, 0.002285, 0.000009],
         [0.591145, 0.036755, 0.000142],
     ], [
         [0.000035, 0.000002, 0.000000],
         [0.009165, 0.000570, 0.000002],
         [0.147403, 0.009165, 0.000035],
     ]])
     actual = make_gauss(torch.Tensor([-1, 1, 0]), [3, 3, 3], sigma=0.6)
     self.assertEqual(expected, actual, 1e-5)
Exemplo n.º 7
0
 def calc_loss(mean, stddev):
     hm = make_gauss(mean, [9, 9], sigma=stddev)
     args = [hm]
     if uses_mean: args.append(target_mean)
     args.append(target_stddev)
     return average_loss(loss_method(*args))
Exemplo n.º 8
0
def test_make_gauss_unnormalized():
    actual = make_gauss(torch.Tensor([0, 0]), [5, 5], sigma=1.0, normalize=False)
    assert actual.max().item() == 1.0
Exemplo n.º 9
0
 def test_unnormalized(self):
     actual = make_gauss(torch.Tensor([0, 0]), [5, 5],
                         sigma=1.0,
                         normalize=False)
     self.assertEqual(1.0, actual.max().item())
Exemplo n.º 10
0
for epoch in range(100):

    total_loss = 0
    total_correct = 0
    model.train()
    start = time.time()

    for images, labels in train_loader:  # Get Batch
        cuda_images, cuda_labels = images.cuda(0), labels.cuda(1)
        # Forward pass
        coords, heatmaps = trained_model(cuda_images)

        out = model(heatmaps.cuda(1))

        loss = criterion(out, dsntnn.make_gauss(cuda_labels, (224, 224), 1.0))
        total_loss += loss.item()

        # Calculate gradients
        optimizer.zero_grad()
        loss.backward()

        # Update model parameters with RMSprop
        optimizer.step()

    end = time.time()

    torch.save(model.state_dict(),
               checkpoints_path + "epoch_{}.pth".format(epoch))

    writer.add_scalar('Training Loss', total_loss / len(train_loader), epoch)