24.08
|
Go to the documentation of this file.
33 return std::move(layer);
38 const auto inputDims = inputShapes[0].GetNumDimensions();
40 std::vector<unsigned int> dimSizes(inputDims);
42 for (
unsigned i = 0; i < inputDims; ++i)
44 dimSizes[i] = inputShapes[0][i];
47 TensorShape outputShape({ inputDims, dimSizes.data() });
49 return std::vector<TensorShape>({ outputShape });
67 if (inferredShapes.size() != 1) {
69 std::to_string(inferredShapes.size()) +
70 " elements - should only have 1.");
83 if (shapeDims != outputDims)
86 std::to_string(shapeDims) +
87 " and output dimension " +
88 std::to_string(outputDims) +
const TensorInfo & GetTensorInfo() const override
std::vector< TensorShape > InferOutputShapes(const std::vector< TensorShape > &inputShapes) const override
Infers the output shapes from given input shapes and layer properties.
bool m_InputEnabled
Flag to show if input tensor is accepted.
unsigned int GetNumDimensions() const
void ValidateAndCopyShape(const TensorShape &outputShape, const TensorShape &inferredShape, const ShapeInferenceMethod shapeInferenceMethod, const std::string &layerName, const unsigned int outputSlotIndex=0)
const OutputSlot & GetOutputSlot(unsigned int index=0) const override
Get the const output slot handle by slot index.
const InputSlot & GetInputSlot(unsigned int index) const override
Get a const input slot handle by slot index.
const char * GetName() const override
Returns the name of the layer.
ScatterNdLayer * Clone(Graph &graph) const override
Creates a dynamically-allocated copy of this layer.
virtual std::unique_ptr< IWorkload > CreateWorkload(const IWorkloadFactory &factory) const override
Makes a workload for the ScatterNd type.
ScatterNdDescriptor m_Param
The parameters for the layer (not including tensor-valued weights etc.).
WorkloadInfo PrepInfoAndDesc(QueueDescriptor &descriptor) const
Helper function to reduce duplication in *Layer::CreateWorkload.
void VerifyShapeInferenceType(const TensorShape &outputShape, ShapeInferenceMethod shapeInferenceMethod)
void SetAdditionalInfo(QueueDescriptor &descriptor) const
This layer represents a ScatterNd operator.
void ScatterNd(const TensorInfo &inputInfo, const TensorInfo &indicesInfo, const TensorInfo &updatesInfo, Decoder< float > &input, Decoder< int > &indices, Decoder< float > &updates, Encoder< float > &output, ScatterNdDescriptor descriptor)
ScatterNdLayer(const ScatterNdDescriptor ¶m, const char *name)
Constructor to create a ScatterNdLayer.
const TensorShape & GetShape() const
void ValidateTensorShapesFromInputs() override
Check if the input tensor shape(s) will lead to a valid configuration of ScatterNdLayer.
Copyright (c) 2021 ARM Limited and Contributors.
void VerifyLayerConnections(unsigned int expectedConnections, const CheckLocation &location) const
A ScatterNdDescriptor for the ScatterNdLayer.
ShapeInferenceMethod m_ShapeInferenceMethod
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below.
unsigned int GetNumElements() const
Function that calculates the tensor elements by multiplying all dimension size which are Specified.
virtual std::unique_ptr< IWorkload > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) const =0
Backends should implement their own CreateWorkload function with a switch statement.