14 using namespace armcomputetensorutils;
20 const arm_compute::TensorInfo aclInputInfo = BuildArmComputeTensorInfo(input, desc.
m_DataLayout);
21 const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output, desc.
m_DataLayout);
24 int32_t blockHeight = boost::numeric_cast<int32_t>(desc.
m_BlockShape[0]);
25 int32_t blockWidth = boost::numeric_cast<int32_t>(desc.
m_BlockShape[1]);
27 const arm_compute::Status aclStatus = arm_compute::NEBatchToSpaceLayer::validate(&aclInputInfo,
40 arm_compute::ITensor& input =
41 boost::polymorphic_pointer_downcast<IAclTensorHandle>(
m_Data.
m_Inputs[0])->GetTensor();
42 arm_compute::ITensor& output =
43 boost::polymorphic_pointer_downcast<IAclTensorHandle>(
m_Data.
m_Outputs[0])->GetTensor();
46 input.info()->set_data_layout(aclDataLayout);
47 output.info()->set_data_layout(aclDataLayout);
53 m_Layer.reset(
new arm_compute::NEBatchToSpaceLayer());
54 m_Layer->configure(&input, blockWidth, blockHeight, &output);
virtual void Execute() const override
arm_compute::Status NeonBatchToSpaceNdWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &desc)
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
#define ARMNN_SCOPED_PROFILING_EVENT_NEON(name)
LayerDescriptor m_Parameters
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
NeonBatchToSpaceNdWorkload(const BatchToSpaceNdQueueDescriptor &descriptor, const WorkloadInfo &info)
const BatchToSpaceNdQueueDescriptor m_Data
void ValidateInputsOutputs(const std::string &descName, unsigned int numExpectedIn, unsigned int numExpectedOut) const
std::vector< ITensorHandle * > m_Outputs
std::vector< ITensorHandle * > m_Inputs
std::vector< unsigned int > m_BlockShape
Block shape values.