Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix scalar check in RuntimeInfoHook #1250

Merged
merged 4 commits into from
Jul 15, 2023

Conversation

i-aki-y
Copy link
Contributor

@i-aki-y i-aki-y commented Jul 14, 2023

Motivation

Some numpy scalars (float32, float16, ...) are misclassified as non-scalar values inRuntimeInfoHook.

See:

from mmengine.hooks.runtime_info_hook import _is_scalar
v = np.mean([0.5])
print(_is_scalar(v.astype(np.float16)))  # => False
print(_is_scalar(v.astype(np.float32)))  # => False
print(_is_scalar(v.astype(np.float64)))  # => True

This causes problems when the custom metrics are calculated in numpy because the log_processor looks to collect only scalar values as metrics to give the visualizer them.

Modification

Added np.floating and np.integer as valid scalar types.

BC-breaking (Optional)

Does the modification introduce changes that break the backward-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.

Use cases (Optional)

I encountered this problem when I defined custom metrics where I calculated metrics in tensor and converted the result to numpy. (ex. metrics.detach().cpu().numpy() --> np.float32)

Checklist

  1. Pre-commit or other linting tools are used to fix the potential lint issues.
  2. The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
  3. If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMCls.
  4. The documentation has been modified accordingly, like docstring or example tutorials.

@zhouzaida zhouzaida requested a review from mzr1996 July 14, 2023 09:04
@zhouzaida zhouzaida merged commit 276c614 into open-mmlab:main Jul 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants