-
Notifications
You must be signed in to change notification settings - Fork 638
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
🧪 Add tests for benchmarking script (#297)
* Stage changes * Add test for benchmarking script * Modify tests for CI * Move benchmarking tests to nightly * Rename tf to tb * Fx merge Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
- Loading branch information
1 parent
40e0c63
commit 995aa8c
Showing
5 changed files
with
135 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
"""Test tools.""" | ||
|
||
# Copyright (C) 2022 Intel Corporation | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions | ||
# and limitations under the License. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
"""Test benchmarking script.""" | ||
|
||
# Copyright (C) 2022 Intel Corporation | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions | ||
# and limitations under the License. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
seed: 42 | ||
compute_openvino: false | ||
hardware: | ||
- cpu | ||
- gpu | ||
writer: | ||
- tensorboard | ||
grid_search: | ||
dataset: | ||
category: | ||
- bottle | ||
- cable | ||
model_name: | ||
- padim |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
"""Test benchmarking script on a subset of models and categories.""" | ||
|
||
# Copyright (C) 2022 Intel Corporation | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions | ||
# and limitations under the License. | ||
|
||
import sys | ||
|
||
# Since tools is not part of the anomalib package, accessing benchmarking requires importlib | ||
sys.path.append("tools/benchmarking") | ||
from importlib.util import find_spec | ||
|
||
if find_spec("benchmark") is not None: | ||
from benchmark import distribute | ||
else: | ||
raise Exception("Unable to import benchmarking script for testing") | ||
|
||
|
||
from pathlib import Path | ||
|
||
from omegaconf import OmegaConf | ||
|
||
from tests.helpers.dataset import get_dataset_path | ||
|
||
|
||
def check_tb_logs(model: str): | ||
"""check if TensorBoard logs are generated.""" | ||
for device in ["gpu", "cpu"]: | ||
assert ( | ||
len(list(Path("runs", f"{model}_{device}").glob("events.out.tfevents.*"))) > 0 | ||
), f"Benchmarking script didn't generate tensorboard logs for {model}" | ||
|
||
|
||
def check_csv(model: str): | ||
"""Check if csv files are generated""" | ||
for device in ["gpu", "cpu"]: | ||
assert Path( | ||
"runs", f"{model}_{device}.csv" | ||
).exists(), f"Benchmarking script didn't generate csv logs for {model}" | ||
|
||
|
||
def test_benchmarking(): | ||
"""Test if benchmarking script produces the required artifacts.""" | ||
config_path = "tests/pre_merge/tools/benchmarking/benchmark_params.yaml" | ||
test_config = OmegaConf.load(config_path) | ||
test_config.grid_search.dataset["path"] = [get_dataset_path()] | ||
|
||
distribute(test_config) | ||
check_tb_logs("padim") | ||
check_csv("padim") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters