You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I also think of simplifying this part of code, it has a lot of redundant logic that is already managed by simple `np.asarray`
diff --git a/pytensor/tensor/elemwise.py b/pytensor/tensor/elemwise.py
index de966f1a7..a0892dfd0 100644
--- a/pytensor/tensor/elemwise.py+++ b/pytensor/tensor/elemwise.py@@ -767,31 +767,17 @@ class Elemwise(OpenMPOp):
for i, (variable, storage, nout) in enumerate(
zip(variables, output_storage, node.outputs)
):
- if getattr(variable, "dtype", "") == "object":- # Since numpy 1.6, function created with numpy.frompyfunc- # always return an ndarray with dtype object- variable = np.asarray(variable, dtype=nout.dtype)++ variable = np.asarray(variable, dtype=nout.dtype)
if i in self.inplace_pattern:
odat = inputs[self.inplace_pattern[i]]
odat[...] = variable
storage[0] = odat
- # Sometimes NumPy return a Python type.- # Some PyTensor op return a different dtype like floor, ceil,- # trunc, eq, ...- elif not isinstance(variable, np.ndarray) or variable.dtype != nout.dtype:- variable = np.asarray(variable, nout.dtype)- # The next line is needed for numpy 1.9. Otherwise- # there are tests that fail in DebugMode.- # Normally we would call pytensor.misc._asarray, but it- # is faster to inline the code. We know that the dtype- # are the same string, just different typenum.- if np.dtype(nout.dtype).num != variable.dtype.num:- variable = variable.view(dtype=nout.dtype)- storage[0] = variable+ storage[0] = variable
# numpy.real return a view!
- elif not variable.flags.owndata:+ if not variable.flags.owndata:
storage[0] = variable.copy()
- else:- storage[0] = variable
Originally posted by @ferrine in #972 (comment)
The text was updated successfully, but these errors were encountered: