diff --git a/src/pyhf/constraints.py b/src/pyhf/constraints.py index 30ef835e79..73b45b05c5 100644 --- a/src/pyhf/constraints.py +++ b/src/pyhf/constraints.py @@ -45,7 +45,7 @@ def __init__(self, pdfconfig, batch_size=None): if not parset.pdf_type == 'normal': continue - normal_constraint_data.append(thisauxdata) + normal_constraint_data.append(default_backend.astensor(thisauxdata)) # many constraints are defined on a unit gaussian # but we reserved the possibility that a paramset @@ -53,9 +53,11 @@ def __init__(self, pdfconfig, batch_size=None): # by the paramset associated to staterror modifiers. # Such parsets define a 'sigmas' attribute try: - normal_constraint_sigmas.append(parset.sigmas) + normal_constraint_sigmas.append(default_backend.astensor(parset.sigmas)) except AttributeError: - normal_constraint_sigmas.append([1.0] * len(thisauxdata)) + normal_constraint_sigmas.append( + default_backend.astensor([1.0] * len(thisauxdata)) + ) self._normal_data = None self._sigmas = None diff --git a/src/pyhf/modifiers/histosys.py b/src/pyhf/modifiers/histosys.py index d23e6c1ff3..31c059c68d 100644 --- a/src/pyhf/modifiers/histosys.py +++ b/src/pyhf/modifiers/histosys.py @@ -31,11 +31,17 @@ def __init__(self, config): self.required_parsets = {} def collect(self, thismod, nom): + default_backend = pyhf.default_backend lo_data = thismod['data']['lo_data'] if thismod else nom hi_data = thismod['data']['hi_data'] if thismod else nom maskval = bool(thismod) mask = [maskval] * len(nom) - return {'lo_data': lo_data, 'hi_data': hi_data, 'mask': mask, 'nom_data': nom} + return { + 'lo_data': default_backend.astensor(lo_data), + 'hi_data': default_backend.astensor(hi_data), + 'mask': default_backend.astensor(mask, dtype='bool'), + 'nom_data': default_backend.astensor(nom), + } def append(self, key, channel, sample, thismod, defined_samp): self.builder_data.setdefault(key, {}).setdefault(sample, {}).setdefault( diff --git a/src/pyhf/modifiers/shapefactor.py b/src/pyhf/modifiers/shapefactor.py index 6c65c2e8c9..b0a0abb003 100644 --- a/src/pyhf/modifiers/shapefactor.py +++ b/src/pyhf/modifiers/shapefactor.py @@ -142,9 +142,17 @@ def __init__(self, modifiers, pdfconfig, builder_data, batch_size=None): for m in keys ] - global_concatenated_bin_indices = [ - [[j for c in pdfconfig.channels for j in range(pdfconfig.channel_nbins[c])]] - ] + global_concatenated_bin_indices = default_backend.astensor( + [ + [ + [ + j + for c in pdfconfig.channels + for j in range(pdfconfig.channel_nbins[c]) + ] + ] + ] + ) self._access_field = default_backend.tile( global_concatenated_bin_indices, diff --git a/src/pyhf/modifiers/shapesys.py b/src/pyhf/modifiers/shapesys.py index 5b5466857f..078db7253b 100644 --- a/src/pyhf/modifiers/shapesys.py +++ b/src/pyhf/modifiers/shapesys.py @@ -117,9 +117,17 @@ def __init__(self, modifiers, pdfconfig, builder_data, batch_size=None): for m in keys ] ) - global_concatenated_bin_indices = [ - [[j for c in pdfconfig.channels for j in range(pdfconfig.channel_nbins[c])]] - ] + global_concatenated_bin_indices = default_backend.astensor( + [ + [ + [ + j + for c in pdfconfig.channels + for j in range(pdfconfig.channel_nbins[c]) + ] + ] + ] + ) self._access_field = default_backend.tile( global_concatenated_bin_indices, diff --git a/src/pyhf/modifiers/staterror.py b/src/pyhf/modifiers/staterror.py index e028b8f5db..377610010b 100644 --- a/src/pyhf/modifiers/staterror.py +++ b/src/pyhf/modifiers/staterror.py @@ -144,9 +144,17 @@ def __init__(self, modifiers, pdfconfig, builder_data, batch_size=None): for m in keys ] ) - global_concatenated_bin_indices = [ - [[j for c in pdfconfig.channels for j in range(pdfconfig.channel_nbins[c])]] - ] + global_concatenated_bin_indices = default_backend.astensor( + [ + [ + [ + j + for c in pdfconfig.channels + for j in range(pdfconfig.channel_nbins[c]) + ] + ] + ] + ) self._access_field = default_backend.tile( global_concatenated_bin_indices,