ONE - On-device Neural Engine
|
Data Structures | |
class | AnnotatedItem |
class | AvgPool2D |
2D Average Pooling More... | |
class | BiasAdd |
Produce a value of domain D from an input value (of domain D) and a bias. More... | |
class | BiasAdd< Domain::Feature > |
Add Feature and Bias along "depth" axis. More... | |
class | BiasAdd< Domain::Tensor > |
Add Tensor and Bias. More... | |
class | BiasDecode |
Create a "Tensor" from a "Bias". More... | |
class | BiasEncode |
Create a "Bias" from a "Tensor". More... | |
class | BiasShape |
Bias Shape. More... | |
class | CanonicalDialect |
A singleton for Canonical Dialect. More... | |
struct | CanonicalNode |
struct | CanonicalNodeDef |
struct | CanonicalNodeMutableVisitor |
struct | CanonicalNodeMutableVisitorBase |
struct | CanonicalNodeVisitor |
struct | CanonicalNodeVisitorBase |
struct | CanonicalShapeInferenceRule |
Shape inference rule for canonical dialect. More... | |
struct | CanonicalTypeInferenceRule |
Type Inference Rule for Canonical Dialect. More... | |
class | ConstGen |
Create a value from constant byte array. More... | |
class | Conv2D |
2D Spatial Convolution More... | |
struct | DataTypeImpl |
C++ scalar type corresponding to each DataType. More... | |
struct | DataTypeImpl< DataType::BOOL > |
struct | DataTypeImpl< DataType::FLOAT16 > |
struct | DataTypeImpl< DataType::FLOAT32 > |
struct | DataTypeImpl< DataType::FLOAT64 > |
struct | DataTypeImpl< DataType::S16 > |
struct | DataTypeImpl< DataType::S32 > |
struct | DataTypeImpl< DataType::S4 > |
struct | DataTypeImpl< DataType::S64 > |
struct | DataTypeImpl< DataType::S8 > |
struct | DataTypeImpl< DataType::STRING > |
struct | DataTypeImpl< DataType::U16 > |
struct | DataTypeImpl< DataType::U32 > |
struct | DataTypeImpl< DataType::U4 > |
struct | DataTypeImpl< DataType::U64 > |
struct | DataTypeImpl< DataType::U8 > |
class | DepthwiseConv2D |
Depthwise 2D Convolution. More... | |
class | DepthwiseFilterDecode |
Create a tensor from a depthwise filter. More... | |
struct | DepthwiseFilterDecoder |
Describe how to build a tensor from a depthwise convolution filter. More... | |
class | DepthwiseFilterEncode |
Create a depthwise filter from a tensor. More... | |
struct | DepthwiseFilterEncoder |
Describe how to build a depthwise convolution filter from a tensor. More... | |
class | DepthwiseFilterIndex |
DepthwiseFilter Index. More... | |
class | DepthwiseFilterShape |
DepthwiseFilter Shape. More... | |
class | Dialect |
Dialect interface. More... | |
struct | DialectService |
Dialect Service interface. More... | |
class | Dimension |
The value of one dimension in a tensor shape. More... | |
class | EltwiseAdd |
Elementwise Add lhs and rhs. More... | |
class | EltwiseDiv |
Elementwise Div lhs and rhs. More... | |
class | EltwiseMax |
Elementwise Maximum of lhs and rhs. More... | |
class | EltwiseMul |
Elementwise Mul lhs and rhs. More... | |
class | EltwiseSqrt |
Elementwise Sqrt of input. More... | |
class | EltwiseSub |
Elementwise Sub lhs and rhs. More... | |
class | ErrorDetail |
The details of each error. More... | |
class | ErrorDetail< ErrorCategory::MissingArgument > |
The details of MissingArgument error. More... | |
struct | ErrorListener |
Error listener (with default implementation) More... | |
class | FeatureDecode |
Create a tensor from a feature map. More... | |
struct | FeatureDecoder |
Describe how to build a tensor from a (convolution) feature map. More... | |
class | FeatureEncode |
Create a feature map from a tensor. More... | |
struct | FeatureEncoder |
Decribe how to build a (convolution) feature map from a tensor. More... | |
class | FeatureIndex |
Feature Index. More... | |
class | FeatureShape |
Feature Map Shape. More... | |
class | FilterDecode |
Create a tensor from a filter. More... | |
struct | FilterDecoder |
Decribe how to build a a tensor from a filter. More... | |
class | FilterEncode |
Create a filter from a tensor. More... | |
struct | FilterEncoder |
Decribe how to build a (convolution) filter from a tensor. More... | |
class | FilterIndex |
Filter Index. More... | |
class | FilterShape |
Filter Shape. More... | |
struct | FixedArity |
class | Forward |
Create a new value identical to its input. More... | |
class | Graph |
A neural network graph. More... | |
class | GraphInput |
Graph-level Input Metadata. More... | |
struct | GraphInputIndexQueryService |
class | GraphOutput |
Graph-level Output Metadata. More... | |
struct | GraphOutputIndexQueryService |
struct | IErrorListener |
Error listener interface. More... | |
class | MatMul |
Matrix Multiplication lhs and rhs. More... | |
class | MatrixDecode |
Create Tensor from Matrix. More... | |
struct | MatrixDecoder |
Describe how to build a tensor from a matrix. More... | |
class | MatrixEncode |
Create Matrix from Tensor. More... | |
struct | MatrixEncoder |
Decribe how to build a matrix from a tensor. More... | |
class | MatrixIndex |
Matrix Index. More... | |
class | MatrixShape |
Matrix Shape. More... | |
class | MaxPool2D |
2D Max Pooling More... | |
class | Mixin |
class | Mixin< Trait::DataTyped > |
class | Mixin< Trait::TensorShaped > |
class | MultiDialectShapeInferenceRule |
Shape inference rule for multiple dialects. More... | |
class | MultiDialectTypeInferenceRule |
Type Inference Rule for multiple dialects. More... | |
class | NamedEntity |
Trait for elements with name. More... | |
class | Node |
Logical unit of computation. More... | |
struct | NodeAnnotation |
Extensible Node Metadata. More... | |
class | NodeMixin |
class | NodeMixin< NodeTrait::DataType > |
class | NodeMixin< NodeTrait::TensorShape > |
class | NodePool |
class | NodeShape |
class | ObjectPool |
Object Pool. More... | |
class | Padding2D |
class | PaddingND |
class | Permutation |
class | Permutation< Domain::DepthwiseFilter > |
Mapping between DepthwiseFilter/Tensor Axis. More... | |
class | Permutation< Domain::Feature > |
Mapping between Feature/Tensor Axis. More... | |
class | Permutation< Domain::Filter > |
Mapping between Filter/Tensor Axis. More... | |
class | Permutation< Domain::Matrix > |
Mapping between Matrix/Tensor Axis. More... | |
class | PermutingDecoder |
class | PermutingDecoder< Domain::DepthwiseFilter > |
Permutation-based DepthwiseFilter-to-Tensor converter. More... | |
class | PermutingDecoder< Domain::Feature > |
class | PermutingDecoder< Domain::Filter > |
Permutation-based Filter-to-Tensor converter. More... | |
class | PermutingDecoder< Domain::Matrix > |
Permutation-based Matrix-to-Tensor converter. More... | |
class | PermutingEncoder |
class | PermutingEncoder< Domain::DepthwiseFilter > |
Permutation-based Tensor-to-DepthwiseFilter converter. More... | |
class | PermutingEncoder< Domain::Feature > |
class | PermutingEncoder< Domain::Filter > |
Permutation-based Tensor-to-Filter converter. More... | |
class | PermutingEncoder< Domain::Matrix > |
Permutation-based Tensor-to-Matrix converter. More... | |
class | Pull |
Create a value from user data. More... | |
class | Push |
Make a value visible to user. More... | |
class | ReLU |
Create a new value that rectifies its input. More... | |
class | ReLU6 |
Create a new value that rectifies its input capping the units at 6. More... | |
class | Reshape |
class | Reshape< ReshapeType::Fixed > |
Reshape a tensor to another tensor whose shape is known at compile time. More... | |
struct | ShapeInference |
struct | ShapeInferenceRule |
class | ShapeInferenceSession |
class | Softmax |
Computes softmax activations. More... | |
class | Softmax< Domain::Tensor > |
Computes softmax activations for Tensor domain. More... | |
class | Stride |
Stride configuration for N-dimensional spatial operations. More... | |
class | Stride< 2 > |
Stride configuration for 2D spatial operations. More... | |
class | Subst |
class | Subst< SubstQualifier::Default > |
A helper for below "replace" helper. More... | |
class | Tanh |
Create a new value that rectifies its input by tanh. More... | |
class | TensorAxisSet |
class | TensorBroadcast |
Duplicate elements along specified axes. More... | |
class | TensorConcat |
Concatenate two tensors. More... | |
class | TensorConstantPad |
Pads a tensor with constant value. More... | |
class | TensorReduce |
Computes ReduceFunc operations for Tensor domain. More... | |
class | TensorShape |
class | TensorTranspose |
Permute an input. More... | |
class | TransposedConv2D |
2D Transposed Convolution More... | |
struct | TypeInference |
struct | TypeInferenceRule |
class | TypeInferenceSession |
class | Use |
The edge between a node definition and its user. More... | |
class | Window |
ND Receptive Field Shape. More... | |
class | Window< 2 > |
2D Receptive Field Shape More... | |
struct | With |
Typedefs | |
using | GraphInputIndex = uint32_t |
using | GraphOutputIndex = uint32_t |
using | FixedReshape = Reshape< ReshapeType::Fixed > |
using | TensorSoftmax = Softmax< Domain::Tensor > |
using | TensorBiasAdd = BiasAdd< Domain::Tensor > |
using | FeatureBiasAdd = BiasAdd< Domain::Feature > |
using | TensorAxis = uint32_t |
using | TensorIndex = nncc::core::ADT::tensor::Index |
Enumerations | |
enum class | CanonicalOpcode { CANONICAL_NODE } |
Canonical Node Opcode. More... | |
enum class | DataType { Unknown , U4 , U8 , U16 , U32 , U64 , S4 , S8 , S16 , S32 , S64 , FLOAT16 , FLOAT32 , FLOAT64 , BOOL , STRING , MXFP4 , MXINT8 } |
"scalar" value type More... | |
enum class | DepthwiseFilterAxis { Depth , Multiplier , Height , Width } |
enum class | Domain { Unknown , Tensor , Feature , Filter , DepthwiseFilter , Bias , Matrix } |
Describe the kind of (N-dimensional) loco values. More... | |
enum class | FeatureAxis { Count , Depth , Height , Width } |
enum class | FilterAxis { Count , Depth , Height , Width } |
enum class | Trait { DataTyped , TensorShaped } |
enum class | MatrixAxis { Height , Width } |
enum class | SubstQualifier { Default } |
enum class | NodeTrait { DataType , TensorShape } |
enum class | ReshapeType { Fixed } |
enum class | ReduceFunc { Mean } |
Reduce type functions. More... | |
enum class | ErrorCategory { MissingArgument } |
Possible error categories. More... | |
Functions | |
std::ostream & | operator<< (std::ostream &os, const loco::FeatureShape &feature_shape) |
dump FeatureShape values to stream | |
std::ostream & | operator<< (std::ostream &os, const loco::FilterShape &filter_shape) |
dump FilterShape values to stream | |
std::ostream & | operator<< (std::ostream &os, const loco::TensorShape &tensor_shape) |
dump TensorShape values to stream | |
std::ostream & | operator<< (std::ostream &os, const loco::Padding2D &pad) |
dump Padding2D values to stream | |
std::vector< loco::Node * > | postorder_traversal (const std::vector< loco::Node * > &roots) |
Generate postorder traversal sequence starting from "roots". | |
std::set< loco::Node * > | active_nodes (const std::vector< loco::Node * > &roots) |
Enumerate all the nodes required to compute "roots". | |
template<typename T , typename ARG > | |
T | _must_cast (ARG arg) |
uint32_t | size (DataType data_type) |
Returns the size of the data type. | |
bool | operator== (const Dimension &, const Dimension &) |
Equality operator between two Dimensions. | |
bool | operator== (const Dimension &, uint32_t) |
bool | operator== (uint32_t, const Dimension &) |
Dimension | make_dimension (void) |
Make an "unknown" dimension. | |
template<typename T > | |
T | must_cast (FeatureEncoder *node) |
A helper dynamic_cast that throws when failed. | |
template<typename T > | |
T | must_cast (const FeatureEncoder *node) |
template<typename T > | |
T | must_cast (FeatureDecoder *node) |
template<typename T > | |
T | must_cast (const FeatureDecoder *node) |
template<typename T > | |
T | must_cast (FilterEncoder *node) |
A helper dynamic_cast that throws when failed. | |
template<typename T > | |
T | must_cast (const FilterEncoder *node) |
std::vector< Node * > | input_nodes (const Graph *) |
std::vector< Node * > | output_nodes (Graph *) |
std::set< Node * > | all_nodes (Graph *) |
Enumerate all the nodes in a given graph. | |
std::unique_ptr< Graph > | make_graph (void) |
std::set< Node * > | preds (const Node *node) |
Enumerate all the predecessors of a given node. | |
std::set< Node * > | succs (const Node *node) |
Enumerate all the successors of a given node. | |
Subst< SubstQualifier::Default > | replace (Node *node) |
template<typename T > | |
T | must_cast (Node *node) |
A helper dynamic_cast that throws when failed. | |
template<typename T > | |
T | must_cast (const Node *node) |
void | link (GraphOutput *, Push *push) |
Push * | push_node (Graph *g, const GraphOutputIndex &index) |
Find a Push node with a given output index. | |
void | link (GraphInput *, Pull *pull) |
Pull * | pull_node (Graph *g, const GraphInputIndex &index) |
Find a Pull node with a given input index. | |
bool | operator== (const NodeShape &lhs, const NodeShape &rhs) |
uint32_t | element_count (const loco::TensorShape *tensor_shape) |
Return the number of elements in a tensor of given shape. | |
bool | operator== (const TensorShape &lhs, const TensorShape &rhs) |
'==' operator for TensorShape | |
bool | valid (Graph *g, std::unique_ptr< ErrorListener > &&l=nullptr) |
Validate a loco graph. | |
ShapeInferenceSession | apply (ShapeInferenceRule *r) |
bool | shape_known (const Node *node) |
NodeShape | shape_get (const Node *node) |
void | shape_erase (Node *node) |
TypeInferenceSession | apply (TypeInferenceRule *r) |
bool | dtype_known (const Node *node) |
DataType | dtype_get (const Node *node) |
void | dtype_erase (Node *node) |
INSTANTIATE (DataType::S32) | |
INSTANTIATE (DataType::FLOAT32) | |
std::ostream & | operator<< (std::ostream &os, const loco::Dimension &d) |
Push
Pull
ConstGen
TensorBroadcast
using loco::FeatureBiasAdd = typedef BiasAdd<Domain::Feature> |
using loco::FixedReshape = typedef Reshape<ReshapeType::Fixed> |
using loco::GraphInputIndex = typedef uint32_t |
Definition at line 25 of file GraphInputIndex.h.
using loco::GraphOutputIndex = typedef uint32_t |
Definition at line 25 of file GraphOutputIndex.h.
using loco::TensorAxis = typedef uint32_t |
Definition at line 25 of file TensorAxis.h.
using loco::TensorBiasAdd = typedef BiasAdd<Domain::Tensor> |
using loco::TensorIndex = typedef nncc::core::ADT::tensor::Index |
Definition at line 26 of file TensorIndex.h.
using loco::TensorSoftmax = typedef Softmax<Domain::Tensor> |
|
strong |
Canonical Node Opcode.
WARNING The order is subject to change. DO NOT serialize this value.
Enumerator | |
---|---|
CANONICAL_NODE |
Definition at line 28 of file CanonicalOpcode.h.
|
strong |
"scalar" value type
Enumerator | |
---|---|
Unknown | |
U4 | |
U8 | |
U16 | |
U32 | |
U64 | |
S4 | |
S8 | |
S16 | |
S32 | |
S64 | |
FLOAT16 | |
FLOAT32 | |
FLOAT64 | |
BOOL | |
STRING | |
MXFP4 | |
MXINT8 |
Definition at line 26 of file DataType.h.
|
strong |
Enumerator | |
---|---|
Depth | |
Multiplier | |
Height | |
Width |
Definition at line 23 of file DepthwiseFilterAxis.h.
|
strong |
Describe the kind of (N-dimensional) loco values.
loco is an intermediate representation for neural network compiler, which mainly focuses on N-dimensional values (usually referred to as Tensor).
There are several special cases for N-dimensional values according to its usage. For example, vision community often refers to 4D array as "FeatureMap".
It is definitely possible to represent all of these special cases using Tensor, but that scheme may introduces some confusion (e.g. NCHW vs NHWC issue).
loco distinguishes these special cases from Tensor in order to reduce such confusion.
This "Domain" enum class enumerates all of these special cases that loco supports.
Enumerator | |
---|---|
Unknown | |
Tensor | |
Feature | |
Filter | |
DepthwiseFilter | |
Bias | |
Matrix |
Definition at line 39 of file Domain.h.
|
strong |
Possible error categories.
This enum class enumerates all the possible validation failure reasons.
WARN DO NOT serialize this code. The tag value is subject to change.
Enumerator | |
---|---|
MissingArgument |
Definition at line 34 of file Verifier.h.
|
strong |
Enumerator | |
---|---|
Count | |
Depth | |
Height | |
Width |
Definition at line 23 of file FeatureAxis.h.
|
strong |
|
strong |
|
strong |
Enumerator | |
---|---|
DataType | |
TensorShape |
Definition at line 30 of file NodeMixins.h.
|
strong |
|
strong |
|
strong |
|
strong |
Enumerator | |
---|---|
DataTyped | |
TensorShaped |
Definition at line 39 of file Graph.h.
T loco::_must_cast | ( | ARG | arg | ) |
Definition at line 28 of file CastHelpers.h.
std::set< loco::Node * > loco::active_nodes | ( | const std::vector< loco::Node * > & | roots | ) |
Enumerate all the nodes required to compute "roots".
Definition at line 112 of file Algorithm.cpp.
References postorder_traversal().
Referenced by fme_apply::check_patterns_valid(), fme_detect::EqualizePatternFinder::find(), moco::test::find_nodes_bytype(), luci::DeadNodeQueryServiceImpl::isDeadNode(), luci::layer_info_map(), mpqsolver::pattern::Q8LayerNormWithQ16VarianceResolver::resolve(), mpqsolver::pattern::Q8SoftmaxWithQ16SubExpResolver::resolve(), mpqsolver::bisection::BisectionSolver::run(), logo::RemoveDeadNodePass::run(), logo::RemoveDeadNodeWithQueryPass::run(), exo::FoldReshapeOfConstPass::run(), exo::FoldTransposeOfConstPass::run(), exo::FuseBiasAddPass::run(), exo::FuseInstanceNormPass::run(), exo::FuseReluPass::run(), exo::FuseRsqrtPass::run(), exo::FuseSquaredDifferencePass::run(), logo::SimplifyDomainConversionPass::run(), luci::CanonicalizePass::run(), luci::ConvertNCHWToNHWCPass::run(), luci::ConvertToFakeQuantizedModelPass::run(), luci::DecomposeHardSwishPass::run(), luci::DecomposeSoftmaxPass::run(), luci::ExpandBroadcastConstPass::run(), luci::FoldAddV2Pass::run(), luci::FoldCastPass::run(), luci::FoldDensifyPass::run(), luci::FoldDepthwiseConv2DPass::run(), luci::FoldDequantizePass::run(), luci::FoldFullyConnectedPass::run(), luci::FoldGatherPass::run(), luci::FoldMulPass::run(), luci::FoldReshapePass::run(), luci::FoldShapePass::run(), luci::FoldSparseToDensePass::run(), luci::FoldSqueezePass::run(), luci::ForwardReshapeToUnaryOpPass::run(), luci::ForwardTransposeOpPass::run(), luci::FuseActivationFunctionPass::run(), luci::FuseAddToFullyConnectedBiasPass::run(), luci::FuseAddWithConvPass::run(), luci::FuseAddWithFullyConnectedPass::run(), luci::FuseAddWithTConvPass::run(), luci::FuseBatchNormWithConvPass::run(), luci::FuseBatchNormWithDwConvPass::run(), luci::FuseBatchNormWithTConvPass::run(), luci::FuseGeluPass::run(), luci::FuseHorizontalFullyConnectedPass::run(), luci::FuseInstanceNormPass::run(), luci::FuseMeanWithMeanPass::run(), luci::FuseMulToFullyConnectedWeightsPass::run(), luci::FuseMulWithConvPass::run(), luci::FuseMulWithDivPass::run(), luci::FuseMulWithFullyConnectedPass::run(), luci::FusePreActivationBatchNormPass::run(), luci::FusePReluPass::run(), luci::FuseRmsNormPass::run(), luci::FuseRoPEPass::run(), luci::FuseRsqrtPass::run(), luci::FuseSliceWithTConvPass::run(), luci::FuseTransposeWithMeanPass::run(), luci::MakeBatchNormGammaPositivePass::run(), luci::PropagateQParamForwardPass::run(), luci::RemoveDuplicateConstPass::run(), luci::RemoveFakeQuantPass::run(), luci::RemoveGatherGuardPass::run(), luci::RemoveQuantDequantSeqPass::run(), luci::RemoveRedundantDequantizePass::run(), luci::RemoveRedundantReshapePass::run(), luci::RemoveRedundantTransposePass::run(), luci::RemoveUnnecessaryAddPass::run(), luci::RemoveUnnecessaryCastPass::run(), luci::RemoveUnnecessaryReshapeNetPass::run(), luci::RemoveUnnecessaryReshapePass::run(), luci::RemoveUnnecessarySlicePass::run(), luci::RemoveUnnecessarySplitPass::run(), luci::RemoveUnnecessaryStridedSlicePass::run(), luci::RemoveUnnecessaryTransposeNetPass::run(), luci::ReplaceMulAddWithDepthwiseConvPass::run(), luci::ReplaceNonConstFCWithBatchMatMulPass::run(), luci::ReplaceSubWithAddPass::run(), luci::ReplaceWithFCGeluFCPass::run(), luci::ResolveCustomOpAddPass::run(), luci::ResolveCustomOpBatchMatMulPass::run(), luci::ResolveCustomOpMatMulPass::run(), luci::ResolveCustomOpMaxPoolWithArgmaxPass::run(), luci::ResolveCustomOpSplitVPass::run(), luci::ResolveFormerCustomOpPass::run(), luci::ShuffleWeightTo16x1Float32Pass::run(), luci::SparsifyTensorPass::run(), luci::SubstituteExpandDimsToReshapePass::run(), luci::SubstitutePackToReshapePass::run(), luci::SubstitutePadV2ToPadPass::run(), luci::SubstituteSplitVToSplitPass::run(), luci::SubstituteSqueezeToReshapePass::run(), luci::SubstituteStridedSliceToReshapePass::run(), luci::SubstituteTransposeToReshapePass::run(), luci::TransformMinMaxToRelu6Pass::run(), luci::TransformMinReluToRelu6Pass::run(), luci::TransformSqrtDivToRsqrtMulPass::run(), luci::UnrollUnidirectionalSequenceLSTMPass::run(), luci::XpSepActFromTransposeConvPass::run(), luci::QuantizeOnnxDequantizeLinearPass::run(), luci::QuantizeOnnxQDQPass::run(), luci::QuantizeWithPredecessorPass::run(), exo::CanonicalNodeConverter< CanonicalType >::run(), exo::TensorBroadcastConverter::run(), exo::MergeConcatNodesPass::run(), fme_apply::FusePostScalePass::run(), fme_apply::FusePreScalePass::run(), luci::CommonSubExpressionEliminationPass::run(), luci::CopyQuantParamPass::run(), luci::ForceQuantParamPass::run(), luci::QuantizeDequantizeWeightsPass::run(), luci::QuantizeDequantizeWeightsWithGPTQPass::run(), luci::QuantizeOnnxFakeQuantModelPass::run(), luci::QuantizeWeightsPass::run(), luci::QuantizeWithMinMaxPass::run(), luci::RequantizePass::run(), luci::QuantizePreCheckerPass::run(), moco::tf::SimpleNodeTransform< ConcreteNode >::run(), moco::ConstantFoldAdd::run(), moco::ConstantFoldMul::run(), moco::ConstantFoldPack::run(), moco::ConstantFoldStridedSlice::run(), moco::FuseBinaryIntoPreceding::run(), moco::ResolveConstantShape::run(), moco::ResolveFusedBatchNorm::run(), moco::ResolveReshapeWildcardDim::run(), moco::ResolveSquaredDifference::run(), moco::SqueezeReduceNode::run(), luci::QuantizedModelVerifier::verify(), and q_implant::QImplant::write().
std::set< loco::Node * > loco::all_nodes | ( | loco::Graph * | g | ) |
Enumerate all the nodes in a given graph.
NOTE This method returns std::set<Node *> unlike input_nodes and output_nodes.
Please use traverse algorithms that "Algorithm.h" provides (such as postorder_traversal) if order is relevant for implementation.
Definition at line 59 of file Graph.cpp.
References size.
Referenced by locop::FormattedGraphImpl< Formatter::LinearV1 >::dump(), luci::inference_candidates(), luci_interpreter::GraphLoader::loadOperators(), logo::RemoveDeadNodePass::run(), logo::RemoveDeadNodeWithQueryPass::run(), logo::RemoveForwardNodePass::run(), moco::RemoveTFIdentityNode::run(), luci::QuantizeWithMinMaxPass::run(), and q_implant::QImplant::write().
|
inline |
Definition at line 51 of file ShapeInference.h.
Referenced by exo::convert_to_TFLNodes(), exo::ShapeInferencePass::run(), exo::TypeInferencePass::run(), moco::tf::ShapeInferencePass::run(), and moco::tf::TypeInferencePass::run().
|
inline |
Definition at line 99 of file TypeInference.h.
|
inline |
Definition at line 110 of file TypeInference.h.
References loco::TypeInference::erase().
Definition at line 109 of file TypeInference.h.
References loco::TypeInference::get().
Referenced by exo::Conv2DConverter::convert(), exo::DepthwiseConv2DConverter::convert(), exo::MatMulConverter::convert(), locop::FormattedGraphImpl< Formatter::LinearV1 >::dump(), and exo::circle_detail::TypeInference::get().
|
inline |
Definition at line 108 of file TypeInference.h.
References loco::TypeInference::known().
Referenced by exo::Conv2DConverter::convert(), exo::DepthwiseConv2DConverter::convert(), exo::MatMulConverter::convert(), locop::FormattedGraphImpl< Formatter::LinearV1 >::dump(), exo::circle_detail::TypeInference::get(), and loco::TypeInferenceSession::to().
uint32_t loco::element_count | ( | const loco::TensorShape * | tensor_shape | ) |
Return the number of elements in a tensor of given shape.
NOTE 1.
"volume" returns 1 if the rank is 0.
NOTE 2.
"caller" SHOULD pass a valid shape that has no unknown dimension.
Definition at line 24 of file TensorShape.cpp.
References loco::TensorShape::dim(), loco::Dimension::known(), loco::TensorShape::rank(), and loco::Dimension::value().
Definition at line 71 of file Graph.cpp.
References size.
Referenced by mpqsolver::bisection::compute_depth(), record_minmax::DirectoryIterator::DirectoryIterator(), minmax_embedder::Embedder::embed(), onert::odc::Embedder::embed(), entry(), mpqsolver::core::H5FileDataProvider::H5FileDataProvider(), record_minmax::HDF5Iterator::HDF5Iterator(), luci_interpreter::GraphLoader::initInputOutputTensors(), luci::DeadNodeQueryServiceImpl::isDeadNode(), record_minmax::ListFileIterator::ListFileIterator(), record_minmax::RecordMinMax::profileData(), record_minmax::RecordMinMax::profileDataInParallel(), record_minmax::RandomIterator::RandomIterator(), mpqsolver::bisection::BisectionSolver::run(), luci::DynamicBatchToSingleBatchPass::run(), prunner::PModelsRunner::run(), dalgona::Dalgona::runAnalysisWithH5Input(), dalgona::Dalgona::runAnalysisWithRandomInput(), dalgona::PythonHooks::startNetworkExecution(), and InterpreterWrapper::writeInputTensor().
loco::INSTANTIATE | ( | DataType::FLOAT32 | ) |
loco::INSTANTIATE | ( | DataType::S32 | ) |
void loco::link | ( | GraphInput * | input, |
Pull * | pull | ||
) |
Definition at line 160 of file Nodes.cpp.
References loco::Pull::index().
void loco::link | ( | GraphOutput * | output, |
Push * | push | ||
) |
Definition at line 65 of file Nodes.cpp.
References loco::Push::index().
Referenced by GraphTestcase< GraphCode::AvgPool2D >::GraphTestcase(), GraphTestcase< GraphCode::MaxPool2D >::GraphTestcase(), GraphTestcase< GraphCode::TensorConcat >::GraphTestcase(), GraphTestcase< GraphCode::TensorTranspose >::GraphTestcase(), InputLayer::operator()(), OutputLayer::operator()(), exo::test::TestGraph::TestGraph(), mir2loco::Transformer::visit(), and mir2loco::Transformer::visit().
Dimension loco::make_dimension | ( | void | ) |
std::unique_ptr< Graph > loco::make_graph | ( | void | ) |
Definition at line 131 of file Graph.cpp.
Referenced by GraphTestcase< GraphCode::ConstGen >::GraphTestcase(), GraphTestcase< GraphCode::Relu >::GraphTestcase(), GraphTestcase< GraphCode::FixedReshape >::GraphTestcase(), GraphTestcase< GraphCode::TensorBroadcast >::GraphTestcase(), moco::Importer::import(), moco::onnx::Frontend::load(), luci::produce_pmodules(), exo::test::TestGraph::TestGraph(), luci::test::TestGraph::TestGraph(), and mir2loco::Transformer::transform().
T loco::must_cast | ( | const FeatureDecoder * | node | ) |
Definition at line 95 of file FeatureCodec.h.
T loco::must_cast | ( | const FeatureEncoder * | node | ) |
Definition at line 85 of file FeatureCodec.h.
T loco::must_cast | ( | const FilterEncoder * | node | ) |
Definition at line 69 of file FilterCodec.h.
T loco::must_cast | ( | const Node * | node | ) |
T loco::must_cast | ( | FeatureDecoder * | node | ) |
Definition at line 90 of file FeatureCodec.h.
T loco::must_cast | ( | FeatureEncoder * | node | ) |
A helper dynamic_cast that throws when failed.
Definition at line 80 of file FeatureCodec.h.
T loco::must_cast | ( | FilterEncoder * | node | ) |
A helper dynamic_cast that throws when failed.
Definition at line 64 of file FilterCodec.h.
T loco::must_cast | ( | Node * | node | ) |
std::ostream & loco::operator<< | ( | std::ostream & | os, |
const loco::Dimension & | d | ||
) |
Definition at line 22 of file FormattedTensorShape.cpp.
References loco::Dimension::known(), and loco::Dimension::value().
std::ostream & loco::operator<< | ( | std::ostream & | os, |
const loco::FeatureShape & | feature_shape | ||
) |
dump FeatureShape values to stream
Definition at line 22 of file LogHelper.cpp.
References loco::FeatureShape::count(), loco::FeatureShape::depth(), loco::FeatureShape::height(), loco::Dimension::value(), and loco::FeatureShape::width().
std::ostream & loco::operator<< | ( | std::ostream & | os, |
const loco::FilterShape & | filter_shape | ||
) |
dump FilterShape values to stream
Definition at line 29 of file LogHelper.cpp.
References loco::FilterShape::count(), loco::FilterShape::depth(), loco::FilterShape::height(), loco::Dimension::value(), and loco::FilterShape::width().
std::ostream & loco::operator<< | ( | std::ostream & | os, |
const loco::Padding2D & | pad | ||
) |
dump Padding2D values to stream
Definition at line 49 of file LogHelper.cpp.
References loco::Padding2D::bottom(), loco::Padding2D::left(), loco::Padding2D::right(), and loco::Padding2D::top().
std::ostream & loco::operator<< | ( | std::ostream & | os, |
const loco::TensorShape & | tensor_shape | ||
) |
dump TensorShape values to stream
Definition at line 36 of file LogHelper.cpp.
References loco::TensorShape::dim(), loco::TensorShape::rank(), and loco::Dimension::value().
Equality operator between two Dimensions.
Definition at line 22 of file Dimension.cpp.
References loco::Dimension::known(), and loco::Dimension::value().
bool loco::operator== | ( | const Dimension & | lhs, |
uint32_t | rhs | ||
) |
Definition at line 27 of file Dimension.cpp.
References loco::Dimension::known(), and loco::Dimension::value().
Definition at line 214 of file NodeShape.cpp.
References loco::NodeShape::as(), Bias, loco::FeatureShape::count(), loco::FilterShape::count(), loco::DepthwiseFilterShape::depth(), loco::FeatureShape::depth(), loco::FilterShape::depth(), DepthwiseFilter, loco::TensorShape::dim(), loco::NodeShape::domain(), Feature, Filter, loco::DepthwiseFilterShape::height(), loco::FeatureShape::height(), loco::FilterShape::height(), loco::MatrixShape::height(), loco::BiasShape::length(), Matrix, loco::DepthwiseFilterShape::multiplier(), loco::TensorShape::rank(), Tensor, loco::DepthwiseFilterShape::width(), loco::FeatureShape::width(), loco::FilterShape::width(), and loco::MatrixShape::width().
bool loco::operator== | ( | const TensorShape & | lhs, |
const TensorShape & | rhs | ||
) |
'==' operator for TensorShape
Definition at line 44 of file TensorShape.cpp.
References loco::TensorShape::dim(), and loco::TensorShape::rank().
bool loco::operator== | ( | uint32_t | lhs, |
const Dimension & | rhs | ||
) |
Definition at line 28 of file Dimension.cpp.
References loco::Dimension::known(), and loco::Dimension::value().
std::vector< loco::Node * > loco::output_nodes | ( | loco::Graph * | g | ) |
Definition at line 101 of file Graph.cpp.
References size.
Referenced by fme_apply::check_patterns_valid(), dalgona::PythonHooks::endNetworkExecution(), entry(), luci::exportNodes(), exo::circle_detail::exportOpDefinedTensors(), exo::tflite_detail::exportOpDefinedTensors(), luci::exportOpDefinedTensors(), fme_detect::EqualizePatternFinder::find(), logo::test::find_first_node_by_type(), moco::test::find_nodes_bytype(), luci::inference_candidates(), circle_eval_diff::MAEPrinter::init(), circle_eval_diff::MSEPrinter::init(), circle_eval_diff::MAPEPrinter::init(), circle_eval_diff::MPEIRPrinter::init(), circle_eval_diff::TopKMatchPrinter::init(), luci_interpreter::GraphLoader::initInputOutputTensors(), luci::DeadNodeQueryServiceImpl::isDeadNode(), luci::layer_info_map(), luci_interpreter::GraphLoader::loadOperators(), InterpreterWrapper::readOutputTensor(), mpqsolver::pattern::Q8LayerNormWithQ16VarianceResolver::resolve(), mpqsolver::pattern::Q8SoftmaxWithQ16SubExpResolver::resolve(), mpqsolver::bisection::BisectionSolver::run(), logo::RemoveDeadNodePass::run(), logo::RemoveDeadNodeWithQueryPass::run(), exo::FoldReshapeOfConstPass::run(), exo::FoldTransposeOfConstPass::run(), exo::FuseBiasAddPass::run(), exo::FuseInstanceNormPass::run(), exo::FuseReluPass::run(), exo::FuseRsqrtPass::run(), exo::FuseSquaredDifferencePass::run(), logo::SimplifyDomainConversionPass::run(), luci::CanonicalizePass::run(), luci::ConvertNCHWToNHWCPass::run(), luci::ConvertToFakeQuantizedModelPass::run(), luci::DecomposeHardSwishPass::run(), luci::DecomposeSoftmaxPass::run(), luci::ExpandBroadcastConstPass::run(), luci::FoldAddV2Pass::run(), luci::FoldCastPass::run(), luci::FoldDensifyPass::run(), luci::FoldDepthwiseConv2DPass::run(), luci::FoldDequantizePass::run(), luci::FoldFullyConnectedPass::run(), luci::FoldGatherPass::run(), luci::FoldMulPass::run(), luci::FoldReshapePass::run(), luci::FoldShapePass::run(), luci::FoldSparseToDensePass::run(), luci::FoldSqueezePass::run(), luci::ForwardReshapeToUnaryOpPass::run(), luci::ForwardTransposeOpPass::run(), luci::FuseActivationFunctionPass::run(), luci::FuseAddToFullyConnectedBiasPass::run(), luci::FuseAddWithConvPass::run(), luci::FuseAddWithFullyConnectedPass::run(), luci::FuseAddWithTConvPass::run(), luci::FuseBatchNormWithConvPass::run(), luci::FuseBatchNormWithDwConvPass::run(), luci::FuseBatchNormWithTConvPass::run(), luci::FuseGeluPass::run(), luci::FuseHorizontalFullyConnectedPass::run(), luci::FuseInstanceNormPass::run(), luci::FuseMeanWithMeanPass::run(), luci::FuseMulToFullyConnectedWeightsPass::run(), luci::FuseMulWithConvPass::run(), luci::FuseMulWithDivPass::run(), luci::FuseMulWithFullyConnectedPass::run(), luci::FusePreActivationBatchNormPass::run(), luci::FusePReluPass::run(), luci::FuseRmsNormPass::run(), luci::FuseRoPEPass::run(), luci::FuseRsqrtPass::run(), luci::FuseSliceWithTConvPass::run(), luci::FuseTransposeWithMeanPass::run(), luci::MakeBatchNormGammaPositivePass::run(), luci::PropagateQParamBackwardPass::run(), luci::PropagateQParamForwardPass::run(), luci::RemoveDuplicateConstPass::run(), luci::RemoveFakeQuantPass::run(), luci::RemoveGatherGuardPass::run(), luci::RemoveQDQForMixedPrecisionOpPass::run(), luci::RemoveQuantDequantSeqPass::run(), luci::RemoveRedundantDequantizePass::run(), luci::RemoveRedundantQuantizePass::run(), luci::RemoveRedundantReshapePass::run(), luci::RemoveRedundantTransposePass::run(), luci::RemoveUnnecessaryAddPass::run(), luci::RemoveUnnecessaryCastPass::run(), luci::RemoveUnnecessaryReshapeNetPass::run(), luci::RemoveUnnecessaryReshapePass::run(), luci::RemoveUnnecessarySlicePass::run(), luci::RemoveUnnecessarySplitPass::run(), luci::RemoveUnnecessaryStridedSlicePass::run(), luci::RemoveUnnecessaryTransposeNetPass::run(), luci::ReplaceMulAddWithDepthwiseConvPass::run(), luci::ReplaceNonConstFCWithBatchMatMulPass::run(), luci::ReplaceSubWithAddPass::run(), luci::ReplaceWithFCGeluFCPass::run(), luci::ResolveCustomOpAddPass::run(), luci::ResolveCustomOpBatchMatMulPass::run(), luci::ResolveCustomOpMatMulPass::run(), luci::ResolveCustomOpMaxPoolWithArgmaxPass::run(), luci::ResolveCustomOpSplitVPass::run(), luci::ResolveFormerCustomOpPass::run(), luci::ShuffleWeightTo16x1Float32Pass::run(), luci::SparsifyTensorPass::run(), luci::SubstituteExpandDimsToReshapePass::run(), luci::SubstitutePackToReshapePass::run(), luci::SubstitutePadV2ToPadPass::run(), luci::SubstituteSplitVToSplitPass::run(), luci::SubstituteSqueezeToReshapePass::run(), luci::SubstituteStridedSliceToReshapePass::run(), luci::SubstituteTransposeToReshapePass::run(), luci::TransformMinMaxToRelu6Pass::run(), luci::TransformMinReluToRelu6Pass::run(), luci::TransformSqrtDivToRsqrtMulPass::run(), luci::UnrollUnidirectionalSequenceLSTMPass::run(), luci::XpSepActFromTransposeConvPass::run(), luci::QuantizeOnnxDequantizeLinearPass::run(), luci::QuantizeOnnxQDQPass::run(), luci::QuantizeWithPredecessorPass::run(), exo::CanonicalNodeConverter< CanonicalType >::run(), exo::TensorBroadcastConverter::run(), exo::MergeConcatNodesPass::run(), fme_apply::InsertScaleShift::run(), fme_apply::FusePostScalePass::run(), fme_apply::FusePreScalePass::run(), luci::CommonSubExpressionEliminationPass::run(), luci::CopyQuantParamPass::run(), luci::ForceQuantParamPass::run(), luci::QuantizeDequantizeWeightsPass::run(), luci::QuantizeDequantizeWeightsWithGPTQPass::run(), luci::QuantizeOnnxFakeQuantModelPass::run(), luci::QuantizeWeightsPass::run(), luci::QuantizeWithMinMaxPass::run(), luci::RequantizePass::run(), luci::QuantizePreCheckerPass::run(), moco::tf::SimpleNodeTransform< ConcreteNode >::run(), logo::ConstantFoldingPass::run(), logo::ResolveDuplicateReshapePass::run(), logo::ResolveRedundantReshapePass::run(), moco::ConstantFoldAdd::run(), moco::ConstantFoldMul::run(), moco::ConstantFoldPack::run(), moco::ConstantFoldStridedSlice::run(), moco::FuseBinaryIntoPreceding::run(), moco::ResolveConstantShape::run(), moco::ResolveFusedBatchNorm::run(), moco::ResolveReshapeWildcardDim::run(), moco::ResolveSquaredDifference::run(), moco::SqueezeReduceNode::run(), luci::FuseBCQPass::run(), prunner::PModelsRunner::run(), prunner::PModelsRunner::save_outputs(), loco::ShapeInferenceSession::to(), loco::TypeInferenceSession::to(), luci::QuantizedModelVerifier::verify(), and q_implant::QImplant::write().
std::vector< loco::Node * > loco::postorder_traversal | ( | const std::vector< loco::Node * > & | roots | ) |
Generate postorder traversal sequence starting from "roots".
HOW TO USE
for (auto node : postorder_traversal(...)) { ... node->do_something() ... }
Definition at line 53 of file Algorithm.cpp.
Referenced by active_nodes(), locop::FormattedGraphImpl< Formatter::LinearV1 >::dump(), luci::exportNodes(), exo::circle_detail::exportOpDefinedTensors(), exo::tflite_detail::exportOpDefinedTensors(), luci::exportOpDefinedTensors(), logo::test::find_first_node_by_type(), locomotiv::Session::infer(), luci::inference_candidates(), luci_interpreter::GraphLoader::loadOperators(), luci::ConvertNCHWToNHWCPass::run(), luci::PropagateQParamBackwardPass::run(), luci::RemoveQDQForMixedPrecisionOpPass::run(), luci::RemoveRedundantQuantizePass::run(), fme_apply::InsertScaleShift::run(), logo::ConstantFoldingPass::run(), logo::ResolveDuplicateReshapePass::run(), logo::ResolveRedundantReshapePass::run(), loco::ShapeInferenceSession::to(), and loco::TypeInferenceSession::to().
Enumerate all the predecessors of a given node.
Definition at line 31 of file Node.cpp.
References loco::Node::arg(), and loco::Node::arity().
Referenced by luci::fuse_activation_function().
Pull * loco::pull_node | ( | Graph * | g, |
const GraphInputIndex & | index | ||
) |
Find a Pull node with a given input index.
Definition at line 162 of file Nodes.cpp.
References size.
Referenced by exo::circle_detail::registerGraphIOName(), exo::tflite_detail::registerGraphIOName(), and locomotiv::Session::set_input().
Push * loco::push_node | ( | Graph * | g, |
const GraphOutputIndex & | index | ||
) |
Find a Push node with a given output index.
Definition at line 67 of file Nodes.cpp.
References size.
Referenced by exo::circle_detail::registerGraphIOName(), and exo::tflite_detail::registerGraphIOName().
Subst< SubstQualifier::Default > loco::replace | ( | Node * | node | ) |
Definition at line 82 of file Node.cpp.
Referenced by exo::DomainConverter< CanonicalT, TFLT >::convert(), exo::AvgPool2DConverter::convert(), exo::ConstGenConverter::convert(), exo::Conv2DConverter::convert(), exo::DepthwiseConv2DConverter::convert(), exo::FeatureBiasAddConverter::convert(), exo::MatMulConverter::convert(), exo::MaxPool2DConverter::convert(), exo::TensorConcatConverter::convert(), exo::TensorTransposeConverter::convert(), exo::TransposedConv2DConverter::convert(), luci::fuse_activation_function(), luci::fuse_add_with_conv(), luci::fuse_mul_with_conv(), luci::fuse_sub_with_conv(), logo::ReorderDecodePass< loco::TensorBiasAdd >::run(), logo::ReorderDecodePass< loco::ReLU >::run(), logo::SimplifyDomainConversionPass::run(), luci::FoldDequantizePass::run(), exo::MergeConcatNodesPass::run(), luci::CommonSubExpressionEliminationPass::run(), and luci::swap_mul_add().
|
inline |
Definition at line 62 of file ShapeInference.h.
References loco::ShapeInference::erase().
Definition at line 61 of file ShapeInference.h.
References loco::ShapeInference::get().
Referenced by moco::tf::BroadcastFunctor::build(), exo::DomainConverter< CanonicalT, TFLT >::convert(), exo::Conv2DConverter::convert(), exo::DepthwiseConv2DConverter::convert(), exo::FeatureBiasAddConverter::convert(), exo::MatMulConverter::convert(), exo::TensorConcatConverter::convert(), exo::TensorTransposeConverter::convert(), exo::TransposedConv2DConverter::convert(), locop::FormattedGraphImpl< Formatter::LinearV1 >::dump(), exo::ShapeInference::get(), locoex::COpShapeInferenceRule::infer(), and moco::node_shape().
|
inline |
Definition at line 60 of file ShapeInference.h.
References loco::ShapeInference::known().
Referenced by exo::DomainConverter< CanonicalT, TFLT >::convert(), exo::Conv2DConverter::convert(), exo::DepthwiseConv2DConverter::convert(), exo::MatMulConverter::convert(), exo::TensorConcatConverter::convert(), exo::TransposedConv2DConverter::convert(), locop::FormattedGraphImpl< Formatter::LinearV1 >::dump(), exo::ShapeInference::get(), moco::node_shape(), and loco::ShapeInferenceSession::to().
|
inline |
Returns the size of the data type.
sizeof(typename DataTypeImpl<DT>::Type)
. Definition at line 134 of file DataTypeTraits.h.
Referenced by luci::size().
Enumerate all the successors of a given node.
Definition at line 46 of file Node.cpp.
Referenced by luci_interpreter::collectOutputNodes(), mpqsolver::bisection::compute_depth(), locop::FormattedGraphImpl< Formatter::LinearV1 >::dump(), fme_detect::EqualizePatternFinder::find(), luci::fuse_activation_function(), luci::fuse_add_with_conv(), luci::fuse_mul_with_conv(), luci::fuse_sub_with_conv(), luci::get_channel_dim_index(), exo::test::get_only_succ(), dalgona::outputsPyArray(), record_hessian::HessianObserver::postTensorWrite(), luci::propagate_concat_quantparam(), luci::propagate_pad_v2_quantparam(), logo::ReorderDecodePass< loco::TensorBiasAdd >::run(), logo::ReorderDecodePass< loco::ReLU >::run(), luci::ConvertNCHWToNHWCPass::run(), luci::FoldDequantizePass::run(), opselector::OpSelector::select_by(), and luci::swap_mul_add().
bool loco::valid | ( | Graph * | g, |
std::unique_ptr< ErrorListener > && | l = nullptr |
||
) |
Validate a loco graph.
"valid" returns true if a given graph has no error.
NOTE Given a valid(non-null) listener, "valid" notifies error details to the listener.
Definition at line 100 of file Verifier.cpp.
Referenced by loco::Permutation< Domain::DepthwiseFilter >::axis(), loco::Permutation< Domain::DepthwiseFilter >::axis(), loco::Permutation< Domain::Feature >::axis(), loco::Permutation< Domain::Feature >::axis(), loco::Permutation< Domain::Filter >::axis(), loco::Permutation< Domain::Filter >::axis(), loco::Permutation< Domain::Matrix >::axis(), loco::Permutation< Domain::Matrix >::axis(), loco::Permutation< Domain::DepthwiseFilter >::mapped(), loco::Permutation< Domain::Feature >::mapped(), loco::Permutation< Domain::Filter >::mapped(), loco::Permutation< Domain::Matrix >::mapped(), loco::PermutingDecoder< Domain::DepthwiseFilter >::shape(), loco::PermutingDecoder< Domain::Feature >::shape(), loco::PermutingDecoder< Domain::Filter >::shape(), loco::PermutingDecoder< Domain::Matrix >::shape(), loco::PermutingEncoder< Domain::Feature >::shape(), loco::PermutingEncoder< Domain::Filter >::shape(), loco::PermutingEncoder< Domain::DepthwiseFilter >::shape(), loco::PermutingEncoder< Domain::Matrix >::shape(), mir2loco::Transformer::transform(), luci::validate(), luci::validate_shape(), loco::PermutingEncoder< Domain::DepthwiseFilter >::value(), loco::PermutingEncoder< Domain::Feature >::value(), loco::PermutingEncoder< Domain::Filter >::value(), loco::PermutingEncoder< Domain::Matrix >::value(), loco::PermutingDecoder< Domain::Feature >::value(), loco::PermutingDecoder< Domain::Filter >::value(), loco::PermutingDecoder< Domain::DepthwiseFilter >::value(), and loco::PermutingDecoder< Domain::Matrix >::value().