mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-15 19:55:53 +00:00
264 lines
12 KiB
C++
264 lines
12 KiB
C++
//
|
|
// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
//
|
|
|
|
#pragma once
|
|
|
|
#include <armnn/ILayerVisitor.hpp>
|
|
|
|
namespace armnn
|
|
{
|
|
|
|
struct VisitorThrowingPolicy
|
|
{
|
|
static void Apply(const std::string& errorMessage = "") { throw UnimplementedException(errorMessage); }
|
|
};
|
|
|
|
struct VisitorNoThrowPolicy
|
|
{
|
|
static void Apply(const std::string&) {}
|
|
};
|
|
|
|
/// Visitor base class with empty implementations.
|
|
ARMNN_NO_DEPRECATE_WARN_BEGIN
|
|
template<typename DefaultPolicy>
|
|
class LayerVisitorBase : public ILayerVisitor
|
|
{
|
|
protected:
|
|
LayerVisitorBase() {}
|
|
virtual ~LayerVisitorBase() {}
|
|
|
|
public:
|
|
|
|
void VisitActivationLayer(const IConnectableLayer*,
|
|
const ActivationDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitAdditionLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitArgMinMaxLayer(const IConnectableLayer*,
|
|
const ArgMinMaxDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitBatchNormalizationLayer(const IConnectableLayer*,
|
|
const BatchNormalizationDescriptor&,
|
|
const ConstTensor&,
|
|
const ConstTensor&,
|
|
const ConstTensor&,
|
|
const ConstTensor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitBatchToSpaceNdLayer(const IConnectableLayer*,
|
|
const BatchToSpaceNdDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitComparisonLayer(const IConnectableLayer*,
|
|
const ComparisonDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitConcatLayer(const IConnectableLayer*,
|
|
const ConcatDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitConstantLayer(const IConnectableLayer*,
|
|
const ConstTensor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitConvolution2dLayer(const IConnectableLayer*,
|
|
const Convolution2dDescriptor&,
|
|
const ConstTensor&,
|
|
const Optional<ConstTensor>&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitDepthToSpaceLayer(const IConnectableLayer*,
|
|
const DepthToSpaceDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitDepthwiseConvolution2dLayer(const IConnectableLayer*,
|
|
const DepthwiseConvolution2dDescriptor&,
|
|
const ConstTensor&,
|
|
const Optional<ConstTensor>&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitDequantizeLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitDetectionPostProcessLayer(const IConnectableLayer*,
|
|
const DetectionPostProcessDescriptor&,
|
|
const ConstTensor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitDivisionLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitElementwiseUnaryLayer(const IConnectableLayer*,
|
|
const ElementwiseUnaryDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitFillLayer(const IConnectableLayer*,
|
|
const FillDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitFloorLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitFullyConnectedLayer(const IConnectableLayer*,
|
|
const FullyConnectedDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitFullyConnectedLayer(const IConnectableLayer*,
|
|
const FullyConnectedDescriptor&,
|
|
const ConstTensor&,
|
|
const Optional<ConstTensor>&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitGatherLayer(const IConnectableLayer*,
|
|
const GatherDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitInputLayer(const IConnectableLayer*,
|
|
LayerBindingId,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitInstanceNormalizationLayer(const IConnectableLayer*,
|
|
const InstanceNormalizationDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitL2NormalizationLayer(const IConnectableLayer*,
|
|
const L2NormalizationDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitLogSoftmaxLayer(const IConnectableLayer*,
|
|
const LogSoftmaxDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitLogicalBinaryLayer(const IConnectableLayer*,
|
|
const LogicalBinaryDescriptor&,
|
|
const char*) override {DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitLstmLayer(const IConnectableLayer*,
|
|
const LstmDescriptor&,
|
|
const LstmInputParams&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitMaximumLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitMeanLayer(const IConnectableLayer*,
|
|
const MeanDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitMergeLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitMinimumLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitMultiplicationLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitNormalizationLayer(const IConnectableLayer*,
|
|
const NormalizationDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitOutputLayer(const IConnectableLayer*,
|
|
LayerBindingId,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitPadLayer(const IConnectableLayer*,
|
|
const PadDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitPermuteLayer(const IConnectableLayer*,
|
|
const PermuteDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitPooling2dLayer(const IConnectableLayer*,
|
|
const Pooling2dDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitPreluLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitQuantizeLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitQLstmLayer(const IConnectableLayer*,
|
|
const QLstmDescriptor&,
|
|
const LstmInputParams&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitQuantizedLstmLayer(const IConnectableLayer*,
|
|
const QuantizedLstmInputParams&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitRankLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitReduceLayer(const IConnectableLayer*,
|
|
const ReduceDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitReshapeLayer(const IConnectableLayer*,
|
|
const ReshapeDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitResizeLayer(const IConnectableLayer*,
|
|
const ResizeDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitSliceLayer(const IConnectableLayer*,
|
|
const SliceDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitSoftmaxLayer(const IConnectableLayer*,
|
|
const SoftmaxDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitSpaceToBatchNdLayer(const IConnectableLayer*,
|
|
const SpaceToBatchNdDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitSpaceToDepthLayer(const IConnectableLayer*,
|
|
const SpaceToDepthDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitSplitterLayer(const IConnectableLayer*,
|
|
const ViewsDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitStackLayer(const IConnectableLayer*,
|
|
const StackDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitStandInLayer(const IConnectableLayer*,
|
|
const StandInDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitStridedSliceLayer(const IConnectableLayer*,
|
|
const StridedSliceDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitSubtractionLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitSwitchLayer(const IConnectableLayer*,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitTransposeConvolution2dLayer(const IConnectableLayer*,
|
|
const TransposeConvolution2dDescriptor&,
|
|
const ConstTensor&,
|
|
const Optional<ConstTensor>&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
void VisitTransposeLayer(const IConnectableLayer*,
|
|
const TransposeDescriptor&,
|
|
const char*) override { DefaultPolicy::Apply(__func__); }
|
|
|
|
};
|
|
ARMNN_NO_DEPRECATE_WARN_END
|
|
|
|
} // namespace armnn
|