aboutsummaryrefslogtreecommitdiff
path: root/src/graph/mutators
diff options
context:
space:
mode:
Diffstat (limited to 'src/graph/mutators')
-rw-r--r--src/graph/mutators/NodeFusionMutator.cpp6
-rw-r--r--src/graph/mutators/SplitLayerSubTensorMutator.cpp6
2 files changed, 9 insertions, 3 deletions
diff --git a/src/graph/mutators/NodeFusionMutator.cpp b/src/graph/mutators/NodeFusionMutator.cpp
index ae53b8ff75..7528520cc7 100644
--- a/src/graph/mutators/NodeFusionMutator.cpp
+++ b/src/graph/mutators/NodeFusionMutator.cpp
@@ -226,6 +226,12 @@ void fuse_node_with_activation(Graph &g, const Edge *output_edge, const std::set
return;
}
+ // EltwiseLayerNode can only be fused when dataype is float
+ if(n_node->type() == NodeType::EltwiseLayer && !is_data_type_float(n_node->output(0)->desc().data_type))
+ {
+ return;
+ }
+
ARM_COMPUTE_LOG_GRAPH_VERBOSE("Fusing node with ID : " << output_edge->producer_id()
<< " with Activation Layer node with ID : " << output_edge->consumer_id() << std::endl);
diff --git a/src/graph/mutators/SplitLayerSubTensorMutator.cpp b/src/graph/mutators/SplitLayerSubTensorMutator.cpp
index 3ba73071ed..76180856c3 100644
--- a/src/graph/mutators/SplitLayerSubTensorMutator.cpp
+++ b/src/graph/mutators/SplitLayerSubTensorMutator.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2019 ARM Limited.
+ * Copyright (c) 2018-2020 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -82,7 +82,7 @@ void SplitLayerSubTensorMutator::mutate(Graph &g)
auto *split_node = arm_compute::utils::cast::polymorphic_downcast<SplitLayerNode *>(node);
- const unsigned int axis = split_node->axis();
+ const int axis = split_node->axis();
const unsigned int num_splits = split_node->num_splits();
const bool extend_parent = (axis < 2);
@@ -92,7 +92,7 @@ void SplitLayerSubTensorMutator::mutate(Graph &g)
Tensor *output_tensor = node->output(i);
const TensorShape output_shape = output_tensor->desc().shape;
Coordinates coords;
- std::tie(std::ignore, coords) = SplitLayerNode::compute_output_descriptor(input_tensor->desc(), num_splits, axis, i);
+ std::tie(std::ignore, coords) = split_node->compute_output_descriptor(input_tensor->desc(), num_splits, axis, i);
backends::IDeviceBackend &backend = backends::BackendRegistry::get().get_backend(output_tensor->desc().target);
std::unique_ptr<ITensorHandle> handle = backend.create_subtensor(input_tensor->handle(), output_shape, coords, extend_parent);