Skip to content
Snippets Groups Projects
Commit c50f6fd8 authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

Atlas tests use less memory

parent 6975b224
No related branches found
No related tags found
No related merge requests found
...@@ -34,16 +34,17 @@ def _repeat(iterator, n): ...@@ -34,16 +34,17 @@ def _repeat(iterator, n):
yield elem yield elem
# We can't cache all atlases, because CI
# jobs will take up too much memory and _atlases = cache.Cache()
# be killed
_atlases = cache.Cache(3)
def _get_atlas(atlasID, res, summary=False): def _get_atlas(atlasID, res, summary=False):
atlas = _atlases.get((atlasID, res, summary), default=None) atlas = _atlases.get((atlasID, res, summary), default=None)
if atlas is None: if atlas is None:
atlas = fslatlases.loadAtlas(atlasID, atlas = fslatlases.loadAtlas(atlasID,
loadSummary=summary, loadSummary=summary,
resolution=res) resolution=res,
loadData=False,
calcRange=False,
indexed=True)
_atlases.put((atlasID, res, summary), atlas) _atlases.put((atlasID, res, summary), atlas)
return atlas return atlas
...@@ -75,7 +76,12 @@ def _get_zero_mask(aimg): ...@@ -75,7 +76,12 @@ def _get_zero_mask(aimg):
if isinstance(aimg, fslatlases.LabelAtlas): if isinstance(aimg, fslatlases.LabelAtlas):
zmask = aimg[:] == 0 zmask = aimg[:] == 0
elif isinstance(aimg, fslatlases.ProbabilisticAtlas): elif isinstance(aimg, fslatlases.ProbabilisticAtlas):
zmask = np.all(aimg[:] == 0, axis=-1)
# Keep memory usage down
zmask = np.ones(aimg.shape[:3], dtype=np.bool)
for vol in range(aimg.shape[-1]):
zmask = np.logical_and(zmask, aimg[..., vol] == 0)
_zero_masks[atlasID, summary, res] = zmask _zero_masks[atlasID, summary, res] = zmask
return zmask return zmask
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment