aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/WorkloadData.cpp
diff options
context:
space:
mode:
authornarpra01 <narumol.prangnawarat@arm.com>2019-01-18 16:53:53 +0000
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-01-22 17:46:51 +0000
commit4951d84b1174a4bb0a5d9c900740f64201f765bf (patch)
treefe713740ac0acbaa8d74bbc9cdb450d08ef9f575 /src/backends/backendsCommon/WorkloadData.cpp
parent0edd46737065d3e5c09aa959807e81f9836ee709 (diff)
downloadarmnn-4951d84b1174a4bb0a5d9c900740f64201f765bf.tar.gz
IVGCVSW-2510 Ref workload implementation for Gather operator
* add implemenentation for GatherQueueDescriptor validate function * add FirstInputTypedWorkload to allow type check on the first input tensor only * add ref workload implemenentation for float and uint8 * add Gather layer support in Ref * unit tests Change-Id: I4578a3211f11d24aa29d15bcf7f45b0445bcd1ee
Diffstat (limited to 'src/backends/backendsCommon/WorkloadData.cpp')
-rw-r--r--src/backends/backendsCommon/WorkloadData.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp
index 072b9a9934..05f4e317a9 100644
--- a/src/backends/backendsCommon/WorkloadData.cpp
+++ b/src/backends/backendsCommon/WorkloadData.cpp
@@ -1055,6 +1055,21 @@ void GatherQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
{
ValidateTwoInputs(workloadInfo, "GatherQueueDescriptor");
ValidateSingleOutput(workloadInfo, "GatherQueueDescriptor");
+
+ const TensorInfo& indices = workloadInfo.m_InputTensorInfos[1];
+
+ if (indices.GetDataType() != DataType::Signed32)
+ {
+ throw InvalidArgumentException("GatherQueueDescriptor: Indices tensor type must be int32.");
+ }
+
+ const TensorInfo& params = workloadInfo.m_InputTensorInfos[0];
+ const TensorInfo& output = workloadInfo.m_OutputTensorInfos[0];
+ unsigned int paramsDim = params.GetNumDimensions();
+ unsigned int indicesDim = indices.GetNumDimensions();
+ unsigned int outputDim = paramsDim - 1 + indicesDim;
+
+ ValidateTensorNumDimensions(output, "GatherQueueDescriptor", outputDim, "output");
}
void PreCompiledQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const