From f1ceaefba7ee7dcdfd166baef18cf4de1a938fbe Mon Sep 17 00:00:00 2001 From: Christopher Rhodes <christopher.rhodes@embl.de> Date: Wed, 10 Apr 2024 15:07:43 +0200 Subject: [PATCH] Handle sporadic ilastik error when patches are close in size to largest filters --- model_server/extensions/ilastik/models.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/model_server/extensions/ilastik/models.py b/model_server/extensions/ilastik/models.py index 30e7a45e..db7ba835 100644 --- a/model_server/extensions/ilastik/models.py +++ b/model_server/extensions/ilastik/models.py @@ -128,11 +128,16 @@ class IlastikPixelClassifierModel(IlastikModel, SemanticSegmentationModel): """ Iterative over a patch stack, call inference separately on each cropped patch """ + from ilastik.applets.featureSelection.opFeatureSelection import FeatureSelectionConstraintError + nc = len(self.labels) data = np.zeros((img.count, *img.hw, nc, img.nz), dtype=float) # interpret as PYXCZ for i in range(0, img.count): sl = img.get_slice_at(i) - data[i][sl[0], sl[1], :, sl[3]] = self.infer(img.iat(i, crop=True))[0].data + try: + data[i][sl[0], sl[1], :, sl[3]] = self.infer(img.iat(i, crop=True))[0].data + except FeatureSelectionConstraintError: # occurs occasionally on small patches + continue return PatchStack(data), {'success': True} def label_pixel_class(self, img: GenericImageDataAccessor, px_class: int = 0, px_prob_threshold=0.5, **kwargs): -- GitLab