Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yaoyuping
nnDetection
Commits
4f94899b
Commit
4f94899b
authored
Nov 24, 2022
by
Baumgartner, Michael
Browse files
add support for num_processes=0 in planning
parent
68352e5c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
28 deletions
+43
-28
nndet/planning/properties/instance.py
nndet/planning/properties/instance.py
+7
-3
nndet/planning/properties/intensity.py
nndet/planning/properties/intensity.py
+25
-19
nndet/planning/properties/segmentation.py
nndet/planning/properties/segmentation.py
+10
-5
scripts/preprocess.py
scripts/preprocess.py
+1
-1
No files found.
nndet/planning/properties/instance.py
View file @
4f94899b
...
@@ -73,9 +73,13 @@ def run_analyze_instances(analyzer: DatasetAnalyzer,
...
@@ -73,9 +73,13 @@ def run_analyze_instances(analyzer: DatasetAnalyzer,
Dict: extract properties per case id [case_id, property_dict]
Dict: extract properties per case id [case_id, property_dict]
"""
"""
props_per_case
=
OrderedDict
()
props_per_case
=
OrderedDict
()
with
Pool
(
analyzer
.
num_processes
)
as
p
:
if
analyzer
.
num_processes
==
0
:
props
=
p
.
starmap
(
analyze_instances_per_case
,
zip
(
props
=
[
analyze_instances_per_case
(
*
args
)
for
args
in
zip
(
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
all_classes
)))
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
all_classes
))]
else
:
with
Pool
(
analyzer
.
num_processes
)
as
p
:
props
=
p
.
starmap
(
analyze_instances_per_case
,
zip
(
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
all_classes
)))
# props = [analyze_instances_per_case(analyzer, cid, all_classes) for cid in analyzer.case_ids]
# props = [analyze_instances_per_case(analyzer, cid, all_classes) for cid in analyzer.case_ids]
...
...
nndet/planning/properties/intensity.py
View file @
4f94899b
...
@@ -80,25 +80,31 @@ def run_collect_intensity_properties(analyzer: DatasetAnalyzer,
...
@@ -80,25 +80,31 @@ def run_collect_intensity_properties(analyzer: DatasetAnalyzer,
Evaluated statistics: `median`; `mean`; `std`; `min`; `max`; `percentile_99_5`; `percentile_00_5`
Evaluated statistics: `median`; `mean`; `std`; `min`; `max`; `percentile_99_5`; `percentile_00_5`
`local_props`: contains a dict (with case ids) where statistics where computed per case
`local_props`: contains a dict (with case ids) where statistics where computed per case
"""
"""
with
Pool
(
analyzer
.
num_processes
)
as
p
:
results
=
OrderedDict
()
results
=
OrderedDict
()
for
mod_id
in
range
(
num_modalities
):
for
mod_id
in
range
(
num_modalities
):
logger
.
info
(
f
"Processing intensity values of modality
{
mod_id
}
"
)
logger
.
info
(
f
"Processing intensity values of modality
{
mod_id
}
"
)
results
[
mod_id
]
=
OrderedDict
()
results
[
mod_id
]
=
OrderedDict
()
voxels
=
p
.
starmap
(
get_voxels_in_foreground
,
if
analyzer
.
num_processes
==
0
:
zip
(
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
mod_id
)))
voxels
=
[
get_voxels_in_foreground
(
*
args
)
for
args
in
zip
(
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
mod_id
))]
local_props
=
p
.
map
(
compute_stats
,
voxels
)
local_props
=
[
compute_stats
(
v
)
for
v
in
voxels
]
props_per_case
=
OrderedDict
()
else
:
for
case_id
,
lp
in
zip
(
analyzer
.
case_ids
,
local_props
):
with
Pool
(
analyzer
.
num_processes
)
as
p
:
props_per_case
[
case_id
]
=
lp
voxels
=
p
.
starmap
(
get_voxels_in_foreground
,
zip
(
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
mod_id
)))
all_voxels
=
[]
local_props
=
p
.
map
(
compute_stats
,
voxels
)
for
iv
in
voxels
:
all_voxels
+=
iv
props_per_case
=
OrderedDict
()
results
[
mod_id
][
'local_props'
]
=
props_per_case
for
case_id
,
lp
in
zip
(
analyzer
.
case_ids
,
local_props
):
results
[
mod_id
].
update
(
compute_stats
(
all_voxels
))
props_per_case
[
case_id
]
=
lp
all_voxels
=
[]
for
iv
in
voxels
:
all_voxels
+=
iv
results
[
mod_id
][
'local_props'
]
=
props_per_case
results
[
mod_id
].
update
(
compute_stats
(
all_voxels
))
if
save
:
if
save
:
with
open
(
analyzer
.
intensity_properties_file
,
'wb'
)
as
f
:
with
open
(
analyzer
.
intensity_properties_file
,
'wb'
)
as
f
:
...
...
nndet/planning/properties/segmentation.py
View file @
4f94899b
...
@@ -117,12 +117,17 @@ def run_analyze_segmentation(
...
@@ -117,12 +117,17 @@ def run_analyze_segmentation(
Dict[Dict]: computed properties per case
Dict[Dict]: computed properties per case
"""
"""
props_per_case
=
OrderedDict
()
props_per_case
=
OrderedDict
()
with
Pool
(
analyzer
.
num_processes
)
as
p
:
props
=
p
.
starmap
(
analyze_fn
,
zip
(
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
all_classes
)))
for
case_id
,
prop
in
zip
(
analyzer
.
case_ids
,
props
):
if
analyzer
.
num_processes
==
0
:
props_per_case
[
case_id
]
=
prop
props
=
[
analyze_fn
(
*
args
)
for
args
in
zip
(
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
all_classes
))]
else
:
with
Pool
(
analyzer
.
num_processes
)
as
p
:
props
=
p
.
starmap
(
analyze_fn
,
zip
(
repeat
(
analyzer
),
analyzer
.
case_ids
,
repeat
(
all_classes
)))
for
case_id
,
prop
in
zip
(
analyzer
.
case_ids
,
props
):
props_per_case
[
case_id
]
=
prop
if
save
:
if
save
:
with
open
(
analyzer
.
props_per_case_file
,
"wb"
)
as
f
:
with
open
(
analyzer
.
props_per_case_file
,
"wb"
)
as
f
:
...
...
scripts/preprocess.py
View file @
4f94899b
...
@@ -232,7 +232,7 @@ def run_check(data_dir: Path,
...
@@ -232,7 +232,7 @@ def run_check(data_dir: Path,
for
case
in
cases_npz
]
for
case
in
cases_npz
]
if
processes
==
0
:
if
processes
==
0
:
result
=
[
check_case
(
case_npz
,
case_pkl
,
remove
=
remove
)
result
=
[
check_case
(
case_npz
,
case_pkl
,
remove
=
remove
,
keys
=
keys
)
for
case_npz
,
case_pkl
in
zip
(
cases_npz
,
cases_pkl
)]
for
case_npz
,
case_pkl
in
zip
(
cases_npz
,
cases_pkl
)]
else
:
else
:
with
Pool
(
processes
=
processes
)
as
p
:
with
Pool
(
processes
=
processes
)
as
p
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment