Download lib/python3.9/site-packages/caffe2/python/operator_test/apmeter_test.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 2.74 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/caffe2/python/operator_test/apmeter_test.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/site-packages/caffe2/python/operator_test/apmeter_test.py
-
curl -L -o apmeter_test.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/caffe2/python/operator_test/apmeter_test.py
2.74 kB
| from caffe2.python import core | |
| from hypothesis import given | |
| import caffe2.python.hypothesis_test_util as hu | |
| import hypothesis.strategies as st | |
| import numpy as np | |
| def calculate_ap(predictions, labels): | |
| N, D = predictions.shape | |
| ap = np.zeros(D) | |
| num_range = np.arange((N), dtype=np.float32) + 1 | |
| for k in range(D): | |
| scores = predictions[:N, k] | |
| label = labels[:N, k] | |
| sortind = np.argsort(-scores, kind='mergesort') | |
| truth = label[sortind] | |
| precision = np.cumsum(truth) / num_range | |
| ap[k] = precision[truth.astype(np.bool)].sum() / max(1, truth.sum()) | |
| return ap | |
| class TestAPMeterOps(hu.HypothesisTestCase): | |
| def test_average_precision(self, predictions, labels, gc, dc): | |
| op = core.CreateOperator( | |
| "APMeter", | |
| ["predictions", "labels"], | |
| ["AP"], | |
| buffer_size=10, | |
| ) | |
| def op_ref(predictions, labels): | |
| ap = calculate_ap(predictions, labels) | |
| return (ap, ) | |
| self.assertReferenceChecks( | |
| device_option=gc, | |
| op=op, | |
| inputs=[predictions, labels], | |
| reference=op_ref) | |
| def test_average_precision_small_buffer(self, predictions, labels, gc, dc): | |
| op_small_buffer = core.CreateOperator( | |
| "APMeter", | |
| ["predictions", "labels"], | |
| ["AP"], | |
| buffer_size=5, | |
| ) | |
| def op_ref(predictions, labels): | |
| # We can only hold the last 5 in the buffer | |
| ap = calculate_ap(predictions[5:], labels[5:]) | |
| return (ap, ) | |
| self.assertReferenceChecks( | |
| device_option=gc, | |
| op=op_small_buffer, | |
| inputs=[predictions, labels], | |
| reference=op_ref | |
| ) | |