37 BOOST_ASSERT(inputShapes.size() == 1);
45 BOOST_ASSERT(unsignedAxis <= inputNumDimensions);
48 if (inputShape.GetNumDimensions() == 1)
50 std::vector<unsigned int> tensorDimensions(1, 1);
51 TensorShape outputShape(1, tensorDimensions.data());
53 return std::vector<TensorShape>({ outputShape });
56 std::vector<unsigned int> tensorDimensions(inputNumDimensions - 1, 0);
57 for (
unsigned int i = 0; i < unsignedAxis; ++i)
59 tensorDimensions[i] = inputShape[i];
62 for (
unsigned int i = unsignedAxis + 1; i < inputNumDimensions; ++i)
64 tensorDimensions[i - 1] = inputShape[i];
69 return std::vector<TensorShape>({ outputShape });
78 BOOST_ASSERT(inferredShapes.size() == 1);
80 ConditionalThrowIfNotEqual<LayerValidationException>(
81 "ArgMinMaxLayer: TensorShape set on OutputSlot does not match the inferred shape.",
const char * GetName() const override
unsigned int GetNumDimensions() const
virtual const TensorInfo & GetTensorInfo() const =0
std::vector< TensorShape > InferOutputShapes(const std::vector< TensorShape > &inputShapes) const override
unsigned int GetUnsignedAxis(const unsigned int inputDimension, const int axis)
virtual void VisitArgMinMaxLayer(const IConnectableLayer *layer, const ArgMinMaxDescriptor &argMinMaxDescriptor, const char *name=nullptr)=0
ArgMinMaxLayer * Clone(Graph &graph) const override
This layer represents a ArgMinMax operation.
virtual std::unique_ptr< IWorkload > CreateArgMinMax(const ArgMinMaxQueueDescriptor &descriptor, const WorkloadInfo &info) const
int m_Axis
Axis to reduce across the input tensor.
const ArgMinMaxDescriptor & GetParameters() const
virtual std::unique_ptr< IWorkload > CreateWorkload(const IWorkloadFactory &factory) const override
void ArgMinMax(Decoder< float > &in, int32_t *out, const TensorInfo &inputTensorInfo, const TensorInfo &outputTensorInfo, ArgMinMaxFunction function, int axis)
ArgMinMaxDescriptor m_Param
The parameters for the layer (not including tensor-valued weights etc.).
void VerifyLayerConnections(unsigned int expectedConnections, const CheckLocation &location) const
WorkloadInfo PrepInfoAndDesc(QueueDescriptor &descriptor) const
Helper function to reduce duplication in *LayerCreateWorkload.
ArgMinMaxLayer(const ArgMinMaxDescriptor ¶m, const char *name)
void ValidateTensorShapesFromInputs() override
void Accept(ILayerVisitor &visitor) const override
const TensorShape & GetShape() const
const TensorInfo & GetTensorInfo() const override
An ArgMinMaxDescriptor for ArgMinMaxLayer.
const OutputSlot & GetOutputSlot(unsigned int index=0) const override
const InputSlot & GetInputSlot(unsigned int index) const override