diff --git a/core/src/ops/array/dyn_slice.rs b/core/src/ops/array/dyn_slice.rs index 2b1de3c5c1..050a62d1f4 100644 --- a/core/src/ops/array/dyn_slice.rs +++ b/core/src/ops/array/dyn_slice.rs @@ -114,5 +114,18 @@ impl TypedOp for DynSlice { )?)) } + fn set_symbols( + &self, + _source: &TypedModel, + node: &TypedNode, + target: &mut TypedModel, + mapping: &HashMap, + subs: &HashMap, + ) -> TractResult> { + let op = DynSlice { axis: self.axis, len: self.len.substitute_all(subs)? }; + let inputs = node.inputs.iter().map(|i| mapping[i]).collect::>(); + target.wire_node(&node.name, op, &inputs) + } + as_op!(); } diff --git a/core/src/ops/array/topk.rs b/core/src/ops/array/topk.rs index 024de8c8db..a98d36cf43 100644 --- a/core/src/ops/array/topk.rs +++ b/core/src/ops/array/topk.rs @@ -103,5 +103,22 @@ impl TypedOp for Topk { Ok(tvec!(fact_values, fact_indices)) } + fn set_symbols( + &self, + _source: &TypedModel, + node: &TypedNode, + target: &mut TypedModel, + mapping: &HashMap, + subs: &HashMap, + ) -> TractResult> { + let op = Topk { + axis: self.axis, + largest: self.largest, + fallback_k: self.fallback_k.substitute_all(subs)?, + }; + let inputs = node.inputs.iter().map(|i| mapping[i]).collect::>(); + target.wire_node(&node.name, op, &inputs) + } + as_op!(); }