diff --git a/pytensor/compile/function/types.py b/pytensor/compile/function/types.py index 9cc85f3d24..2dcb4baacd 100644 --- a/pytensor/compile/function/types.py +++ b/pytensor/compile/function/types.py @@ -14,7 +14,7 @@ import pytensor import pytensor.compile.profiling from pytensor.compile.io import In, SymbolicInput, SymbolicOutput -from pytensor.compile.ops import deep_copy_op, view_op +from pytensor.compile.ops import deep_copy_op from pytensor.compile.profiling import ProfileStats from pytensor.configdefaults import config from pytensor.graph.basic import ( @@ -1260,9 +1260,11 @@ def insert_deepcopy(fgraph, wrapped_inputs, wrapped_outputs): # and not(wrapped_outputs[i].borrow and wrapped_outputs[j].borrow): if fgraph.outputs[j] in views_of_output_i: if wrapped_outputs[i].borrow and wrapped_outputs[j].borrow: - fgraph.change_node_input( - *output_client, view_op(original_out), reason=reason - ) + pass + + # fgraph.change_node_input( + # *output_client, view_op(original_out), reason=reason + # ) else: fgraph.change_node_input( *output_client, deep_copy_op(original_out), reason=reason @@ -1287,11 +1289,11 @@ def insert_deepcopy(fgraph, wrapped_inputs, wrapped_outputs): if input_j in fgraph.inputs: j = fgraph.inputs.index(input_j) if wrapped_outputs[i].borrow and wrapped_inputs[j].borrow: - fgraph.change_node_input( - *output_client, - view_op(original_out), - reason=reason, - ) + # fgraph.change_node_input( + # *output_client, + # view_op(original_out), + # reason=reason, + # ) break else: fgraph.change_node_input( @@ -1301,11 +1303,11 @@ def insert_deepcopy(fgraph, wrapped_inputs, wrapped_outputs): ) break elif wrapped_outputs[i].borrow: - fgraph.change_node_input( - *output_client, - view_op(original_out), - reason=reason, - ) + # fgraph.change_node_input( + # *output_client, + # view_op(original_out), + # reason=reason, + # ) break else: fgraph.change_node_input( diff --git a/pytensor/tensor/subtensor.py b/pytensor/tensor/subtensor.py index 9c14f31e1d..305537af80 100644 --- a/pytensor/tensor/subtensor.py +++ b/pytensor/tensor/subtensor.py @@ -2203,12 +2203,16 @@ def c_code(self, node, name, input_names, output_names, sub): }} }} }} + if ({output_name}==NULL){{ + printf("Have to allocate new AdvancedSubtensor1 output\n"); + }} {output_name} = (PyArrayObject*)PyArray_TakeFrom( {a_name}, (PyObject*){i_name}, 0, {output_name}, NPY_RAISE); if ({output_name} == NULL) {fail}; """ def c_code_cache_version(self): + return None return (4,)