summaryrefslogtreecommitdiff
path: root/neurobench_testing/examples/gsc/benchmark_ann.py
diff options
context:
space:
mode:
authorTanner Robison <[email protected]>2026-07-06 10:35:32 -0700
committerTanner Robison <[email protected]>2026-07-07 15:42:48 -0700
commite2b30976cdaccf9d2b9820fefa22ced03c82711f (patch)
tree99f1d6d5824882a533f46f1819138ec5196abed3 /neurobench_testing/examples/gsc/benchmark_ann.py
parent3a17db637fd41015df26f1cceb0d1c098e85d436 (diff)
readout layer trained
verified with time-series forecasting task and plotted
Diffstat (limited to 'neurobench_testing/examples/gsc/benchmark_ann.py')
-rw-r--r--neurobench_testing/examples/gsc/benchmark_ann.py70
1 files changed, 0 insertions, 70 deletions
diff --git a/neurobench_testing/examples/gsc/benchmark_ann.py b/neurobench_testing/examples/gsc/benchmark_ann.py
deleted file mode 100644
index 6f71a1e..0000000
--- a/neurobench_testing/examples/gsc/benchmark_ann.py
+++ /dev/null
@@ -1,70 +0,0 @@
-import os
-import torch
-
-from torch.utils.data import DataLoader
-import torchaudio
-
-from neurobench.datasets import SpeechCommands
-
-from neurobench.models import TorchModel
-from neurobench.benchmarks import Benchmark
-
-from neurobench.processors.abstract import NeuroBenchPreProcessor, NeuroBenchPostProcessor
-
-from neurobench.metrics.workload import (
- ActivationSparsity,
- SynapticOperations,
- ClassificationAccuracy
-)
-from neurobench.metrics.static import (
- Footprint,
- ConnectionSparsity,
-)
-
-from ANN import M5
-
-device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
-
-file_path = os.path.dirname(os.path.abspath(__file__))
-model_path = os.path.join(file_path, "model_data/m5_ann")
-data_dir = os.path.join(file_path, "../../data/speech_commands") # data in repo root dir
-
-test_set = SpeechCommands(path=data_dir, subset="testing")
-
-test_set_loader = DataLoader(test_set, batch_size=500, shuffle=True)
-
-net = M5()
-net.load_state_dict(torch.load(model_path, map_location=device))
-
-class resample(NeuroBenchPreProcessor):
- def __init__(self):
- self.resample = torchaudio.transforms.Resample(orig_freq=16000, new_freq=8000).to(device)
-
- def __call__(self, dataset):
- inputs = dataset[0].permute(0, 2, 1)
- inputs = self.resample(inputs)
- return (inputs, dataset[1])
-
-preprocessors = [resample()]
-
-class convert_to_label(NeuroBenchPostProcessor):
-
- def __call__(self, output):
- return output.argmax(dim=-1).squeeze()
-
-postprocessors = [convert_to_label()]
-
-## Define model ##
-model = TorchModel(net)
-
-static_metrics = [Footprint, ConnectionSparsity]
-workload_metrics = [ClassificationAccuracy, ActivationSparsity, SynapticOperations]
-
-benchmark = Benchmark(model, test_set_loader, preprocessors, postprocessors, [static_metrics, workload_metrics])
-results = benchmark.run(device=device)
-print(results)
-
-# Results:
-# {'Footprint': 109228, 'ConnectionSparsity': 0.0,
-# 'ClassificationAccuracy': 0.8653339412687909, 'ActivationSparsity': 0.3854464619019532,
-# 'SynapticOperations': {'Effective_MACs': 1728071.1701953658, 'Effective_ACs': 0.0, 'Dense': 1880256.0}} \ No newline at end of file