diff options
author | Conor Kennedy <conor.kennedy@arm.com> | 2018-11-14 15:28:28 +0000 |
---|---|---|
committer | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2018-11-15 11:23:08 +0000 |
commit | 430b5d824a17ddfb31bb29c18407e45e0def958c (patch) | |
tree | 529e92404ae0df12c3f92da803637591f3bba7ee /src/backends/backendsCommon/WorkloadData.cpp | |
parent | 5caf907efc31e774f8afde54b17a5596477772f6 (diff) | |
download | armnn-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.cpp | 37 |
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 |