Skip to content

DataAnalyzer with histogram_only=True #6873

Closed

Description

@wyli

Describe the bug
using DataAnalyzer with histogram_only=True raises error:

2023-08-15 15:15:52,439 - INFO - Found 0 GPUs for data analyzing!
2023-08-15 15:15:52,441 - INFO - device=cuda:0 but CUDA device is not available, using CPU instead.
  0%|                                                                                                                                                      | 0/10 [00:08<?, ?it/s]
Traceback (most recent call last):
  File "/workspace/demo21/data/analyzer.py", line 184, in <module>
    datastas = analyzer.get_all_case_stats(transform_list=label_transform)
  File "/usr/local/lib/python3.10/dist-packages/monai/apps/auto3dseg/data_analyzer.py", line 228, in get_all_case_stats
    result_bycase = self._get_all_case_stats(0, 1, None, key, transform_list)
  File "/usr/local/lib/python3.10/dist-packages/monai/apps/auto3dseg/data_analyzer.py", line 359, in _get_all_case_stats
    DataStatsKeys.BY_CASE_IMAGE_PATH: d[DataStatsKeys.BY_CASE_IMAGE_PATH],
KeyError: image_filepath

the root cause is that when skipping certain analyzers, the output stats keys won't exist

if not self.histogram_only:
self.add_analyzer(FilenameStats(image_key, DataStatsKeys.BY_CASE_IMAGE_PATH), None)
self.add_analyzer(FilenameStats(label_key, DataStatsKeys.BY_CASE_LABEL_PATH), None)
self.add_analyzer(ImageStats(image_key), ImageStatsSumm(average=average))

but the _get_all_case_stats assumes the stats keys

stats_by_cases = {
DataStatsKeys.BY_CASE_IMAGE_PATH: d[DataStatsKeys.BY_CASE_IMAGE_PATH],
DataStatsKeys.BY_CASE_LABEL_PATH: d[DataStatsKeys.BY_CASE_LABEL_PATH],
DataStatsKeys.IMAGE_STATS: d[DataStatsKeys.IMAGE_STATS],
}

Activity

  1. added a commit that references this issue on Aug 15, 2023
    c46dbf7
  2. self-assigned this
    on Aug 15, 2023
  3. added a commit that references this issue on Aug 16, 2023
    617c1be
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions