aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/WorkloadData.cpp
diff options
context:
space:
mode:
authorConor Kennedy <conor.kennedy@arm.com>2018-11-14 15:28:28 +0000
committerAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2018-11-15 11:23:08 +0000
commit430b5d824a17ddfb31bb29c18407e45e0def958c (patch)
tree529e92404ae0df12c3f92da803637591f3bba7ee /src/backends/backendsCommon/WorkloadData.cpp
parent5caf907efc31e774f8afde54b17a5596477772f6 (diff)
downloadarmnn-430b5d824a17ddfb31bb29c18407e45e0def958c.tar.gz
IVGCVSW-2086: Add StridedSlice layer & corresponding no-op factory implementations
Change-Id: I906dcb8b4c9b491bf3a661f208c09d0ea1c0fa35
Diffstat (limited to 'src/backends/backendsCommon/WorkloadData.cpp')
-rw-r--r--src/backends/backendsCommon/WorkloadData.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp
index 9fbdfe94c2..e1146543ff 100644
--- a/src/backends/backendsCommon/WorkloadData.cpp
+++ b/src/backends/backendsCommon/WorkloadData.cpp
@@ -924,4 +924,41 @@ void BatchToSpaceNdQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) c
ValidateSingleOutput(workloadInfo, "BatchToSpaceNdQueueDescriptor");
}
+void StridedSliceQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
+{
+ ValidateSingleInput(workloadInfo, "StridedSliceQueueDescriptor");
+ ValidateSingleOutput(workloadInfo, "StridedSliceQueueDescriptor");
+
+ const TensorInfo& input = workloadInfo.m_InputTensorInfos[0];
+ const uint32_t rank = input.GetNumDimensions();
+
+ // Begin, End & Stride length must be of rank(input0)
+ if (m_Parameters.m_Begin.size() != rank)
+ {
+ throw InvalidArgumentException("StridedSliceLayer: Begin length must be of rank input0("
+ + to_string(rank) + ")");
+ }
+
+ if (m_Parameters.m_End.size() != rank)
+ {
+ throw InvalidArgumentException("StridedSliceLayer: End length must be of rank input0("
+ + to_string(rank) + ")");
+ }
+
+ if (m_Parameters.m_Stride.size() != rank)
+ {
+ throw InvalidArgumentException("StridedSliceLayer: Stride length must be of rank input0("
+ + to_string(rank) + ")");
+ }
+
+ // Stride entries must be non-zero
+ for (auto& stride : m_Parameters.m_Stride)
+ {
+ if (stride == 0)
+ {
+ throw InvalidArgumentException("StridedSliceLayer: Stride entries must be non-zero");
+ }
+ }
+}
+
} //namespace armnn \ No newline at end of file