aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/WorkloadData.cpp
diff options
context:
space:
mode:
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