class ngraph::pass::low_precision::PrecisionsRestriction¶
Overview¶
PrecisionsRestriction defines a set of precision restrictions for each input port Common precision restriction can be also set for several ports. In this case, an operation will have the same precision for mentioned. More…
#include <precisions_restriction.hpp>
class PrecisionsRestriction
{
public:
// typedefs
typedef std::vector<std::pair<std::vector<size_t>, std::vector<ngraph::element::Type>>> PrecisionsByPorts;
// fields
ngraph::Node::type_info_t operationType;
bool specifyVersion;
PrecisionsByPorts precisionsByPorts;
// construction
PrecisionsRestriction();
PrecisionsRestriction(
const ngraph::Node::type_info_t operationType,
const bool specifyVersion,
const PrecisionsByPorts& precisionsByPorts
);
// methods
template <typename T>
static PrecisionsRestriction create(
const PrecisionsByPorts& precisionsByPorts,
const bool specifyVersion = false
);
template <typename T>
static PrecisionsByPorts getPrecisionsByOperationType(std::vector<PrecisionsRestriction>& restrictions);
};
Detailed Documentation¶
PrecisionsRestriction defines a set of precision restrictions for each input port Common precision restriction can be also set for several ports. In this case, an operation will have the same precision for mentioned.
// One restriction for each port PrecisionsRestriction::create<ngraph::opset1::Convolution> ({ {{0}, {ngraph::element::u8}}, {{1}, {ngraph::element::i8}}, }),
// Common precision restriction for several ports: // both inputs will have the same precision PrecisionsRestriction::create<ngraph::opset5::LSTMSequence> ({ {{0, 1}, {ngraph::element::u8, ngraph::element::i8}} }),