Improve GMARE metric computation formula
See original GitHub issueMonths ago I tried to improve GMARE to be compatible with DDP, but I had a very strange issue, and the distributed tests were failing, I thought I did something wrong (even I updated +10 metrics for DDP then) so I ignored it at that time, today I was trying to update it and send the PR but I had the same issue, the tests distributed tests are failing.
distributed_context_single_node_gloo = {'local_rank': 1, 'rank': 1, 'world_size': 2}
@pytest.mark.distributed
@pytest.mark.skipif(not idist.has_native_dist_support, reason="Skip if no native dist support")
def test_distrib_gloo_cpu_or_gpu(distributed_context_single_node_gloo):
device = idist.device()
> _test_distrib_compute(device)
metric_device = device(type='cpu')
def _test(metric_device):
metric_device = torch.device(metric_device)
m = GeometricMeanRelativeAbsoluteError(device=metric_device)
torch.manual_seed(10 + rank)
y_pred = torch.rand(size=(100,), device=device)
y = torch.rand(size=(100,), device=device)
m.update((y_pred, y))
y_pred = idist.all_gather(y_pred)
y = idist.all_gather(y)
np_y = y.cpu().numpy()
np_y_pred = y_pred.cpu().numpy()
np_gmrae = np.exp(np.log(np.abs(np_y - np_y_pred) / np.abs(np_y - np_y.mean())).mean())
# sum_y = 0
# num_examples = 0
# sum_of_errors = 0
# np_gmrae = 0
# sum_y += np_y.sum()
# num_examples += np_y.shape[0]
# y_mean = sum_y / num_examples
# numerator = np.abs(y.view_as(y_pred) - y_pred)
# denominator = np.abs(y.view_as(y_pred) - y_mean)
# sum_of_errors += np.log(numerator / denominator).sum()
# np_gmrae += np.exp((sum_of_errors / num_examples).mean())
> assert m.compute() == pytest.approx(np_gmrae)
E assert 1.3195266723632812 == 1.3320785760879517 ± 1.3e-06
E +1.3195266723632812
E -1.3320785760879517 ± 1.3e-06
FAILED tests/ignite/contrib/metrics/regression/test_geometric_mean_relative_absolute_error.py::test_distrib_gloo_cpu_or_gpu - assert 1.3195266723632812 == 1.3320785760879517 ± 1.3e-06
FAILED tests/ignite/contrib/metrics/regression/test_geometric_mean_relative_absolute_error.py::test_distrib_gloo_cpu_or_gpu - assert 1.3195266723632812 == 1.3320785760879517 ± 1.3e-06
And here is the code and the tests https://github.com/pytorch/ignite/compare/master...KickItLikeShika:improve-GMRAE-ddp
Issue Analytics
- State:
- Created 2 years ago
- Comments:9 (9 by maintainers)
Top Results From Across the Web
Game Revenue Metrics — What Matters, and When - Sisense
Conversion rate is calculated as the number of players who make a purchase in your game, divided by the number of total players....
Read more >Lifetime metric for game analytics - devtodev
Lifetime metric for game or app analytics: what it is, how to calculate it, how to use it, difference between Lifetime and Lifetime...
Read more >What Are Game Metrics and Why Do They Matter?
A similar principle is used to calculate the average revenue per ... This metric won't tell you how to improve your game design...
Read more >15 Metrics All Game Developers Should Know by Heart
We look at the most useful game analytics metrics to help shed ... This calculation is performed for user cohort on each day...
Read more >What Are Game Metrics and Do They Matter? (With Examples)
By understanding what data game metrics provide, you can develop a deeper ... Related: Business Metrics: Definition, Examples and Formulas ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Yep I cited this article in my previous post. Nothing solid, I agree.
I have been looking for examples or something shows the usage of the metric, but I found nothing solid yet, but this link you sent above somehow clarifies the usage of the metric https://support.numxl.com/hc/en-us/articles/115001223403-GMRAE-Geometric-Mean-Relative-Absolute-Error