38 struct INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(LayerParams) {
53 INFERENCE_ENGINE_DEPRECATED(
"Use precision of CNNLayer::outData and CNNLayer::insData")
61 IE_SUPPRESS_DEPRECATED_START
67 LayerParams(const LayerParams & other);
74 LayerParams & operator= (const LayerParams & other);
76 IE_SUPPRESS_DEPRECATED_END
84 LayerParams(const std::
string & name, const std::
string & type,
Precision precision);
91 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(CNNLayer) {
93 std::shared_ptr<ngraph::Node> node;
98 IE_SUPPRESS_DEPRECATED_START
99 using Ptr = std::shared_ptr<CNNLayer>;
100 IE_SUPPRESS_DEPRECATED_END
142 IE_SUPPRESS_DEPRECATED_START
149 explicit CNNLayer(
const LayerParams& prms);
155 std::shared_ptr<ngraph::Node> getNode() {
163 CNNLayer(
const CNNLayer& other);
165 IE_SUPPRESS_DEPRECATED_END
177 void fuse(Ptr& layer) {
186 virtual const DataPtr input()
const {
187 if (insData.empty()) {
190 auto lockedFirstInsData = insData[0].lock();
191 if (!lockedFirstInsData) {
194 return lockedFirstInsData;
200 void validateLayer();
209 static float ie_parse_float(
const std::string& str) {
211 return -std::numeric_limits<float>::infinity();
212 }
else if (str ==
"inf") {
213 return std::numeric_limits<float>::infinity();
216 std::stringstream val_stream(str);
217 val_stream.imbue(std::locale(
"C"));
227 static std::string ie_serialize_float(
float value) {
228 std::stringstream val_stream;
229 val_stream.imbue(std::locale(
"C"));
231 return val_stream.str();
241 float GetParamAsFloat(
const char* param,
float def)
const {
242 std::string val = GetParamAsString(param, ie_serialize_float(def).c_str());
244 return ie_parse_float(val);
246 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" from IR for layer " << name <<
". Value " 247 << val <<
" cannot be casted to float.";
257 float GetParamAsFloat(
const char* param)
const {
258 std::string val = GetParamAsString(param);
260 return ie_parse_float(val);
262 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" from IR for layer " << name <<
". Value " 263 << val <<
" cannot be casted to float.";
274 std::vector<float> GetParamAsFloats(
const char* param, std::vector<float> def)
const {
275 std::string vals = GetParamAsString(param,
"");
276 std::vector<float> result;
277 std::istringstream stream(vals);
279 if (vals.empty())
return def;
280 while (getline(stream, str,
',')) {
282 float val = ie_parse_float(str);
283 result.push_back(val);
285 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" " << str <<
" from IR for layer " << name
286 <<
". Value " << vals <<
" cannot be casted to floats.";
298 std::vector<float> GetParamAsFloats(
const char* param)
const {
299 std::string vals = GetParamAsString(param);
300 std::vector<float> result;
301 std::istringstream stream(vals);
303 while (getline(stream, str,
',')) {
305 float val = ie_parse_float(str);
306 result.push_back(val);
308 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" " << str <<
" from IR for layer " << name
309 <<
". Value " << vals <<
" cannot be casted to floats.";
322 int GetParamAsInt(
const char* param,
int def)
const {
323 std::string val = GetParamAsString(param, std::to_string(def).c_str());
325 return std::stoi(val);
327 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" from IR for layer " << name <<
". Value " 328 << val <<
" cannot be casted to int.";
338 int GetParamAsInt(
const char* param)
const {
339 std::string val = GetParamAsString(param);
341 return std::stoi(val);
343 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" from IR for layer " << name <<
". Value " 344 << val <<
" cannot be casted to int.";
355 std::vector<int> GetParamAsInts(
const char* param, std::vector<int> def)
const {
356 std::string vals = GetParamAsString(param,
"");
357 std::vector<int> result;
358 std::istringstream stream(vals);
360 if (vals.empty())
return def;
361 while (getline(stream, str,
',')) {
363 result.push_back(std::stoi(str));
365 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" " << str <<
" from IR for layer " << name
366 <<
". Value " << vals <<
" cannot be casted to int.";
378 std::vector<int> GetParamAsInts(
const char* param)
const {
379 std::string vals = GetParamAsString(param);
380 std::vector<int> result;
381 std::istringstream stream(vals);
383 while (getline(stream, str,
',')) {
385 result.push_back(std::stoi(str));
387 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" " << str <<
" from IR for layer " << name
388 <<
". Value " << vals <<
" cannot be casted to int.";
400 unsigned int GetParamAsUInt(
const char* param,
unsigned int def)
const {
401 std::string val = GetParamAsString(param, std::to_string(def).c_str());
402 std::string message =
"Cannot parse parameter " + std::string(param) +
" from IR for layer " + name +
403 ". Value " + val +
" cannot be casted to int.";
405 int value = std::stoi(val);
409 return static_cast<unsigned int>(value);
421 unsigned int GetParamAsUInt(
const char* param)
const {
422 std::string val = GetParamAsString(param);
423 std::string message =
"Cannot parse parameter " + std::string(param) +
" from IR for layer " + name +
424 ". Value " + val +
" cannot be casted to unsigned int.";
426 int value = std::stoi(val);
430 return static_cast<unsigned int>(value);
443 std::vector<unsigned int> GetParamAsUInts(
const char* param, std::vector<unsigned int> def)
const {
444 std::string vals = GetParamAsString(param,
"");
445 std::vector<unsigned int> result;
446 std::istringstream stream(vals);
448 std::string message =
"Cannot parse parameter " + std::string(param) +
" " + str +
" from IR for layer " +
449 name +
". Value " + vals +
" cannot be casted to unsigned int.";
450 if (vals.empty())
return def;
451 while (getline(stream, str,
',')) {
453 int value = std::stoi(str);
457 result.push_back(static_cast<unsigned int>(value));
471 std::vector<unsigned int> GetParamAsUInts(
const char* param)
const {
472 std::string vals = GetParamAsString(param);
473 std::vector<unsigned int> result;
474 std::istringstream stream(vals);
476 std::string message =
"Cannot parse parameter " + std::string(param) +
" " + str +
" from IR for layer " +
477 name +
". Value " + vals +
" cannot be casted to int.";
478 while (getline(stream, str,
',')) {
480 int value = std::stoi(str);
484 result.push_back(static_cast<unsigned int>(value));
499 bool GetParamAsBool(
const char* param,
bool def)
const {
500 std::string val = GetParamAsString(param, std::to_string(def).c_str());
501 std::string loweredCaseValue;
502 std::transform(val.begin(), val.end(), std::back_inserter(loweredCaseValue), [](
char value) {
503 return std::tolower(value);
508 if (!(std::istringstream(loweredCaseValue) >> std::boolalpha >> result)) {
510 return (GetParamAsInt(param, def) != 0);
521 bool GetParamAsBool(
const char* param)
const {
522 std::string val = GetParamAsString(param);
523 std::string loweredCaseValue;
524 std::transform(val.begin(), val.end(), std::back_inserter(loweredCaseValue), [](
char value) {
525 return std::tolower(value);
530 if (!(std::istringstream(loweredCaseValue) >> std::boolalpha >> result)) {
532 return (GetParamAsInt(param) != 0);
545 std::string GetParamAsString(
const char* param,
const char* def)
const {
546 auto it =
params.find(param);
547 if (it ==
params.end() || it->second.empty()) {
559 bool CheckParamPresence(
const char* param)
const {
560 auto it =
params.find(param);
574 std::string GetParamAsString(
const char* param)
const {
575 auto it =
params.find(param);
588 std::vector<std::string> GetParamAsStrings(
const char* param, std::vector<std::string> def)
const {
589 std::string vals = GetParamAsString(param,
"");
590 std::vector<std::string> result;
591 std::istringstream stream(vals);
593 if (vals.empty())
return def;
594 while (getline(stream, str,
',')) {
596 result.push_back(str);
598 THROW_IE_EXCEPTION <<
"Cannot parse parameter " << param <<
" from IR for layer " << name <<
".";
607 std::map<std::string, std::string>
params;
612 std::map<std::string, Blob::Ptr>
blobs;
618 IE_SUPPRESS_DEPRECATED_START
620 IE_SUPPRESS_DEPRECATED_END
622 IE_SUPPRESS_DEPRECATED_START_WIN
628 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(WeightableLayer):
public CNNLayer {
630 IE_SUPPRESS_DEPRECATED_START
638 explicit WeightableLayer(
const LayerParams & prms);
640 IE_SUPPRESS_DEPRECATED_END
654 using CNNLayer::CNNLayer;
656 ~WeightableLayer()
override;
662 #define DEFINE_PROP(prop_name) \ 663 PropertyVector<unsigned int> prop_name; \ 664 unsigned int& prop_name##_x = prop_name.at(X_AXIS); \ 665 unsigned int& prop_name##_y = prop_name.at(Y_AXIS) 671 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ConvolutionLayer):
public WeightableLayer {
706 IE_SUPPRESS_DEPRECATED_START
711 explicit ConvolutionLayer(
const LayerParams& p)
717 ConvolutionLayer& operator=(
const ConvolutionLayer& that) {
719 WeightableLayer::operator=(that);
722 _pads_end = that._pads_end;
725 _out_depth = that._out_depth;
726 _group = that._group;
734 ConvolutionLayer(
const ConvolutionLayer& that): WeightableLayer(that) {
740 ConvolutionLayer(ConvolutionLayer&&) =
default;
742 IE_SUPPRESS_DEPRECATED_END
744 ~ConvolutionLayer()
override;
751 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(DeconvolutionLayer):
public ConvolutionLayer {
753 using ConvolutionLayer::ConvolutionLayer;
754 using ConvolutionLayer::operator=;
756 ~DeconvolutionLayer()
override;
763 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(DeformableConvolutionLayer):
public ConvolutionLayer {
765 using ConvolutionLayer::ConvolutionLayer;
766 using ConvolutionLayer::operator=;
773 ~DeformableConvolutionLayer()
override;
780 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(PoolingLayer):
public CNNLayer {
803 enum PoolType { MAX = 1, AVG = 2, STOCH = 3, ROI = 4, SPACIAL_PYRAMID = 5 };
819 IE_SUPPRESS_DEPRECATED_START
824 explicit PoolingLayer(
const LayerParams& p): CNNLayer(p),
_kernel(2, 0u),
_padding(2, 0u),
_stride(2, 0u) {}
829 PoolingLayer& operator=(
const PoolingLayer& that) {
831 CNNLayer::operator=(that);
834 _pads_end = that._pads_end;
837 _exclude_pad = that._exclude_pad;
844 PoolingLayer(
const PoolingLayer& that): CNNLayer(that) {
851 PoolingLayer(PoolingLayer&&) =
default;
853 IE_SUPPRESS_DEPRECATED_END
855 ~PoolingLayer()
override;
862 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(BinaryConvolutionLayer):
public WeightableLayer {
918 IE_SUPPRESS_DEPRECATED_START
923 explicit BinaryConvolutionLayer(
const LayerParams& p)
929 BinaryConvolutionLayer& operator=(
const BinaryConvolutionLayer& that) {
931 WeightableLayer::operator=(that);
934 _pads_end = that._pads_end;
937 _out_depth = that._out_depth;
938 _group = that._group;
940 _in_depth = that._in_depth;
941 _pad_value = that._pad_value;
948 BinaryConvolutionLayer(
const BinaryConvolutionLayer& that): WeightableLayer(that) {
954 BinaryConvolutionLayer(BinaryConvolutionLayer&&) =
default;
956 IE_SUPPRESS_DEPRECATED_END
958 ~BinaryConvolutionLayer()
override;
967 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(FullyConnectedLayer):
public WeightableLayer {
977 using WeightableLayer::WeightableLayer;
979 ~FullyConnectedLayer()
override;
988 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ConcatLayer):
public CNNLayer {
1001 using CNNLayer::CNNLayer;
1003 ~ConcatLayer()
override;
1010 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(SplitLayer):
public CNNLayer {
1015 unsigned int _axis = 1;
1020 using CNNLayer::CNNLayer;
1022 ~SplitLayer()
override;
1029 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(NormLayer):
public CNNLayer {
1055 using CNNLayer::CNNLayer;
1057 ~NormLayer()
override;
1064 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(SoftMaxLayer):
public CNNLayer {
1073 using CNNLayer::CNNLayer;
1075 ~SoftMaxLayer()
override;
1082 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(GRNLayer):
public CNNLayer {
1088 using CNNLayer::CNNLayer;
1095 ~GRNLayer()
override;
1102 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(MVNLayer):
public CNNLayer {
1108 using CNNLayer::CNNLayer;
1120 ~MVNLayer()
override;
1127 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ReLULayer):
public CNNLayer {
1137 using CNNLayer::CNNLayer;
1139 ~ReLULayer()
override;
1148 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ClampLayer):
public CNNLayer {
1162 using CNNLayer::CNNLayer;
1164 ~ClampLayer()
override;
1173 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ReLU6Layer):
public ClampLayer {
1175 IE_SUPPRESS_DEPRECATED_START
1180 explicit ReLU6Layer(
const LayerParams& prms): ClampLayer(prms) {
1183 IE_SUPPRESS_DEPRECATED_END
1185 ~ReLU6Layer()
override;
1192 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(EltwiseLayer):
public CNNLayer {
1234 using CNNLayer::CNNLayer;
1236 ~EltwiseLayer()
override;
1243 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(CropLayer):
public CNNLayer {
1248 std::vector<int>
axis;
1261 using CNNLayer::CNNLayer;
1263 ~CropLayer()
override;
1270 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ReshapeLayer):
public CNNLayer {
1288 using CNNLayer::CNNLayer;
1290 ~ReshapeLayer()
override;
1297 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(TileLayer):
public CNNLayer {
1311 using CNNLayer::CNNLayer;
1313 ~TileLayer()
override;
1320 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ScaleShiftLayer):
public WeightableLayer {
1331 using WeightableLayer::WeightableLayer;
1333 ~ScaleShiftLayer()
override;
1340 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(TensorIterator):
public CNNLayer {
1369 using CNNLayer::CNNLayer;
1371 ~TensorIterator()
override;
1378 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(RNNCellBase):
public WeightableLayer {
1380 using WeightableLayer::WeightableLayer;
1430 ~RNNCellBase()
override;
1471 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(LSTMCell):
public RNNCellBase {
1473 using RNNCellBase::RNNCellBase;
1474 using RNNCellBase::operator=;
1476 ~LSTMCell()
override;
1513 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(GRUCell):
public RNNCellBase {
1515 using RNNCellBase::RNNCellBase;
1516 using RNNCellBase::operator=;
1518 ~GRUCell()
override;
1550 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(RNNCell):
public RNNCellBase {
1552 using RNNCellBase::RNNCellBase;
1553 using RNNCellBase::operator=;
1555 ~RNNCell()
override;
1587 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(RNNSequenceLayer):
public RNNCellBase {
1589 using RNNCellBase::RNNCellBase;
1597 unsigned int axis = 1;
1611 ~RNNSequenceLayer()
override;
1618 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(PReLULayer):
public WeightableLayer {
1632 using WeightableLayer::WeightableLayer;
1634 ~PReLULayer()
override;
1643 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(PowerLayer):
public CNNLayer {
1661 using CNNLayer::CNNLayer;
1663 ~PowerLayer()
override;
1670 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(BatchNormalizationLayer):
public WeightableLayer {
1680 using WeightableLayer::WeightableLayer;
1682 ~BatchNormalizationLayer()
override;
1691 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(GemmLayer):
public CNNLayer {
1712 using CNNLayer::CNNLayer;
1714 ~GemmLayer()
override;
1723 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(PadLayer):
public CNNLayer {
1729 enum ePadMode { Constant = 0, Edge, Reflect, Symmetric };
1750 using CNNLayer::CNNLayer;
1752 ~PadLayer()
override;
1761 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(GatherLayer):
public CNNLayer {
1770 using CNNLayer::CNNLayer;
1772 ~GatherLayer()
override;
1781 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(StridedSliceLayer):
public CNNLayer {
1811 using CNNLayer::CNNLayer;
1813 ~StridedSliceLayer()
override;
1821 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ShuffleChannelsLayer):
public CNNLayer {
1836 using CNNLayer::CNNLayer;
1838 ~ShuffleChannelsLayer()
override;
1846 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(DepthToSpaceLayer):
public CNNLayer {
1856 using CNNLayer::CNNLayer;
1858 ~DepthToSpaceLayer()
override;
1866 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(SpaceToDepthLayer):
public CNNLayer {
1876 using CNNLayer::CNNLayer;
1878 ~SpaceToDepthLayer()
override;
1887 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(SpaceToBatchLayer):
public CNNLayer {
1906 using CNNLayer::CNNLayer;
1908 ~SpaceToBatchLayer()
override;
1917 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(BatchToSpaceLayer):
public CNNLayer {
1939 using CNNLayer::CNNLayer;
1941 ~BatchToSpaceLayer()
override;
1950 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(SparseFillEmptyRowsLayer):
public CNNLayer {
1955 using CNNLayer::CNNLayer;
1957 ~SparseFillEmptyRowsLayer()
override;
1965 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(SparseSegmentReduceLayer):
public CNNLayer {
1970 using CNNLayer::CNNLayer;
1972 ~SparseSegmentReduceLayer()
override;
1980 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ExperimentalSparseWeightedReduceLayer) :
public CNNLayer {
1985 using CNNLayer::CNNLayer;
1987 ~ExperimentalSparseWeightedReduceLayer()
override;
1995 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(SparseToDenseLayer) :
public CNNLayer {
2000 using CNNLayer::CNNLayer;
2002 ~SparseToDenseLayer()
override;
2010 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(BucketizeLayer) :
public CNNLayer {
2020 using CNNLayer::CNNLayer;
2022 ~BucketizeLayer()
override;
2031 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ReverseSequenceLayer):
public CNNLayer {
2046 using CNNLayer::CNNLayer;
2048 ~ReverseSequenceLayer()
override;
2056 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(OneHotLayer):
public CNNLayer {
2081 using CNNLayer::CNNLayer;
2083 ~OneHotLayer()
override;
2092 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(RangeLayer):
public CNNLayer {
2097 using CNNLayer::CNNLayer;
2099 ~RangeLayer()
override;
2108 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(FillLayer):
public CNNLayer {
2113 using CNNLayer::CNNLayer;
2115 ~FillLayer()
override;
2126 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(SelectLayer):
public CNNLayer {
2131 using CNNLayer::CNNLayer;
2133 ~SelectLayer()
override;
2142 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(BroadcastLayer):
public CNNLayer {
2147 using CNNLayer::CNNLayer;
2149 ~BroadcastLayer()
override;
2158 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(QuantizeLayer):
public CNNLayer {
2168 using CNNLayer::CNNLayer;
2170 ~QuantizeLayer()
override;
2179 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(MathLayer):
public CNNLayer {
2184 using CNNLayer::CNNLayer;
2186 ~MathLayer()
override;
2195 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ReduceLayer):
public CNNLayer {
2205 using CNNLayer::CNNLayer;
2207 ~ReduceLayer()
override;
2216 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(TopKLayer):
public CNNLayer {
2234 using CNNLayer::CNNLayer;
2236 ~TopKLayer()
override;
2245 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(UniqueLayer):
public CNNLayer {
2263 using CNNLayer::CNNLayer;
2265 ~UniqueLayer()
override;
2272 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(NonMaxSuppressionLayer):
public CNNLayer {
2286 using CNNLayer::CNNLayer;
2288 ~NonMaxSuppressionLayer()
override;
2295 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ScatterLayer):
public CNNLayer {
2304 using CNNLayer::CNNLayer;
2306 ~ScatterLayer()
override;
2312 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ExperimentalDetectronPriorGridGeneratorLayer):
public CNNLayer {
2338 using CNNLayer::CNNLayer;
2340 virtual ~ExperimentalDetectronPriorGridGeneratorLayer();
2346 class INFERENCE_ENGINE_INTERNAL_CNNLAYER_CLASS(ExperimentalDetectronGenerateProposalsSingleImageLayer):
public CNNLayer {
2368 using CNNLayer::CNNLayer;
2370 virtual ~ExperimentalDetectronGenerateProposalsSingleImageLayer();
2373 IE_SUPPRESS_DEPRECATED_END_WIN
std::vector< size_t > _crops_begin
It specifies how many elements to crop from the intermediate result across the spatial dimensions...
Definition: ie_layers.h:1928
std::vector< float > activation_alpha
Alpha parameters of activations.
Definition: ie_layers.h:1421
#define THROW_IE_EXCEPTION
A macro used to throw the exception with a notable description.
Definition: ie_exception.hpp:25
#define DEFINE_PROP(prop_name)
convinenent way to declare property with backward compatibility to 2D members
Definition: ie_layers.h:662
bool sort_result_descending
The 'sort_result_descending' indicates that result will sort descending by score through all batches ...
Definition: ie_layers.h:2282
PropertyVector< unsigned int > pads_begin
Size of padding in the beginning of each axis.
Definition: ie_layers.h:1734
Direction direction
Direction of iteration through sequence dimension.
Definition: ie_layers.h:1609
bool transpose_b
A flag that indicates if the src2 matrix is to be transposed.
Definition: ie_layers.h:1708
float _alpha
Alpha coefficient.
Definition: ie_layers.h:1042
Direction
Direction of iteration through sequence dimension.
Definition: ie_layers.h:1602
std::vector< DataWeakPtr > insData
A vector of weak pointers to the input data elements of this layer in the di-graph (order matters) ...
Definition: ie_layers.h:125
eBinaryConvolutionMode
Defines possible modes of binary convolution operation.
Definition: ie_layers.h:868
int levels
The number of quantization levels.
Definition: ie_layers.h:2163
bool with_right_bound
Indicates whether the intervals include the right or the left bucket edge.
Definition: ie_layers.h:2015
float epsilon
A small value to add to the variance estimate to avoid division by zero.
Definition: ie_layers.h:1675
The method holds the user values to enable binding of data per graph node.
Definition: ie_common.h:69
int axis
Definition: ie_layers.h:1348
std::vector< int > offset
A vector of offsets for each dimension.
Definition: ie_layers.h:1256
Inference Engine API.
Definition: ie_argmax_layer.hpp:15
Blob::Ptr _biases
A pointer to a biases blob.
Definition: ie_layers.h:649
std::vector< float > activation_beta
Beta parameters of activations.
Definition: ie_layers.h:1428
std::string name
Layer name.
Definition: ie_layers.h:42
std::vector< int > shape
A vector of sizes of the shape.
Definition: ie_layers.h:1275
unsigned int _size
Response size.
Definition: ie_layers.h:1034
std::string sort
top K values sort mode could be 'value' or 'index'
Definition: ie_layers.h:2225
Blob::Ptr _weights
A pointer to a weights blob.
Definition: ie_layers.h:645
A header file for Blob and generic TBlob<>
unsigned int depth
A depth of representation.
Definition: ie_layers.h:2061
PoolType _type
A pooling type.
Definition: ie_layers.h:808
std::vector< int > dim
A vector of dimensions to be preserved.
Definition: ie_layers.h:1252
int axis
Axis number for a softmax operation.
Definition: ie_layers.h:1069
std::vector< size_t > _pads_begin
Size of padding in the beginning of each axis.
Definition: ie_layers.h:1897
eBinaryConvolutionMode _mode
Mode of binary convolution operation.
Definition: ie_layers.h:873
std::string affinity
Layer affinity set by user.
Definition: ie_layers.h:140
std::vector< size_t > _block_shape
Spatial dimensions blocks sizes.
Definition: ie_layers.h:1892
Definition: ie_layers.h:1342
float on_value
The locations represented by indices in input take value on_value.
Definition: ie_layers.h:2066
Describes a tensor iterator body.
Definition: ie_layers.h:1358
float scale
A scale factor.
Definition: ie_layers.h:1652
std::vector< DataPtr > outputs
Outputs data.
Definition: ie_layers.h:1360
bool transpose_a
A flag that indicates if the src1 matrix is to be transposed.
Definition: ie_layers.h:1704
PropertyVector< unsigned int > pads_end
Size of padding in the end of each axis.
Definition: ie_layers.h:1738
float bias
Bias for squares sum.
Definition: ie_layers.h:1093
int normalize
Indicate that the result needs to be normalized.
Definition: ie_layers.h:1118
bool _isAcrossMaps
Flag to specify normalization across feature maps (true) or across channels.
Definition: ie_layers.h:1050
float negative_slope
Negative slope is used to takle negative inputs instead of setting them to 0.
Definition: ie_layers.h:1132
bool return_counts
A flag indicating whether to return a number of occurences for each unique element.
Definition: ie_layers.h:2258
PropertyVector< unsigned int > _padding
A convolution paddings begin array [X, Y, Z, ...].
Definition: ie_layers.h:680
std::string mode
The mode could be 'max' or 'min'.
Definition: ie_layers.h:2221
std::string new_axis_mask
The new_axis_mask_ is a bitmask where bit i being 1 means the i-th position creates a new 1 dimension...
Definition: ie_layers.h:1801
float stride_h
Value of height step between grid cells.
Definition: ie_layers.h:2333
unsigned int _deformable_group
Number of deformable groups.
Definition: ie_layers.h:771
Definition: ie_layers_property.hpp:21
Definition: ie_layers.h:1390
Definition: ie_layers.h:1387
Definition: ie_layers.h:1605
int num_axes
A number of first axises to be taken for a reshape.
Definition: ie_layers.h:1283
Body body
A Tensor Iterator body.
Definition: ie_layers.h:1367
int tiles
A number of copies to be made.
Definition: ie_layers.h:1306
int grid_w
Value of grid width.
Definition: ie_layers.h:2321
std::shared_ptr< Blob > Ptr
A smart pointer containing Blob object.
Definition: ie_blob.h:42
std::shared_ptr< Data > DataPtr
Smart pointer to Data.
Definition: ie_common.h:53
std::vector< size_t > _crops_end
It specifies how many elements to crop from the intermediate result across the spatial dimensions...
Definition: ie_layers.h:1934
int post_nms_topn
Maximum number of anchors selected after nms.
Definition: ie_layers.h:2363
eOperation _operation
A type of the operation to use.
Definition: ie_layers.h:1224
float pad_value
A pad value which is used for filling in Constant mode.
Definition: ie_layers.h:1746
int start
Definition: ie_layers.h:1350
a header file for describing property style structure used by CNNLayers
int grid_h
Value of grid height.
Definition: ie_layers.h:2325
int batch_axis
The batch_axis dimension in tensor along which reversal is performed.
Definition: ie_layers.h:2041
Definition: ie_cnn_network.h:27
CellType
Direct type of recurrent cell (including subtypes) Description of particular cell semantics is in LST...
Definition: ie_layers.h:1386
std::string shrink_axis_mask
The shrink_axis_mask is a bitmask where bit i being 1 means the i-th position shrinks the dimensional...
Definition: ie_layers.h:1806
PropertyVector< unsigned int > _dilation
A convolution dilations array [X, Y, Z, ...].
Definition: ie_layers.h:692
unsigned int block_size
The group of output shuffled channels.
Definition: ie_layers.h:1851
Definition: ie_layers.h:1389
float min_value
A minimum value.
Definition: ie_layers.h:1153
This header file defines the main Data representation node.
std::string ellipsis_mask
The ellipsis_mask is a bitmask where bit i being 1 means the i-th is actually an ellipsis.
Definition: ie_layers.h:1796
unsigned int _group
Number of groups.
Definition: ie_layers.h:700
bool center_point_box
The 'center_point_box' indicates the format of the box data.
Definition: ie_layers.h:2277
bool sorted
A flag indicating whether to sort unique elements.
Definition: ie_layers.h:2250
std::map< std::string, Blob::Ptr > blobs
Map of pairs: (name, weights/biases blob)
Definition: ie_layers.h:612
Definition: ie_layers.h:1604
std::vector< DataPtr > outData
A vector of pointers to the output data elements of this layer in the di-graph (order matters) ...
Definition: ie_layers.h:120
std::string begin_mask
The begin_mask is a bitmask where bit i being 0 means to ignore the begin value and instead use the d...
Definition: ie_layers.h:1787
float min_size
Minimium width and height for boxes.
Definition: ie_layers.h:2351
int seq_axis
The seq_axis dimension in tensor which is partially reversed.
Definition: ie_layers.h:2036
std::map< std::string, std::string > params
Map of pairs: (parameter name, parameter value)
Definition: ie_layers.h:607
float off_value
The locations not represented by indices in input take value off_value.
Definition: ie_layers.h:2071
float _beta
Beta coefficient.
Definition: ie_layers.h:1046
bool return_inverse
A flag indicating whether to return indices of input data elements in the output of uniques...
Definition: ie_layers.h:2254
PropertyVector< unsigned int > _stride
A convolution strides array [X, Y, Z, ...].
Definition: ie_layers.h:688
std::vector< float > coeff
A vector of coefficients to scale the operands.
Definition: ie_layers.h:1229
int from
Definition: ie_layers.h:1344
float power
An exponent value.
Definition: ie_layers.h:1648
float alpha
A scale factor of src1 matrix.
Definition: ie_layers.h:1696
int end
Definition: ie_layers.h:1351
int part_size
Definition: ie_layers.h:1352
bool _channel_shared
A flag that indicates if the same negative_slope value is used for all the features. If false, the value is used pixel wise.
Definition: ie_layers.h:1624
unsigned int _broadcast
A flag that indicates if the same value is used for all the features. If false, the value is used pix...
Definition: ie_layers.h:1326
float clip
Clip data into range [-clip, clip] on input of activations.
Definition: ie_layers.h:1408
std::vector< PortMap > input_port_map
Input ports map.
Definition: ie_layers.h:1363
int flatten
flatten value
Definition: ie_layers.h:2317
std::vector< PortMap > back_edges
Back edges map.
Definition: ie_layers.h:1365
Definition: ie_layers.h:1603
float nms_threshold
Non max suppression threshold.
Definition: ie_layers.h:2355
bool keep_dims
The keep_dims dimension in tensor which is partially reversed.
Definition: ie_layers.h:2200
int to
Definition: ie_layers.h:1345
Definition: ie_layers.h:1388
int pre_nms_topn
Maximum number of anchors selected before nms.
Definition: ie_layers.h:2359
float beta
A scale factor of src3 matrix.
Definition: ie_layers.h:1700
float _pad_value
A pad value which is used to fill pad area.
Definition: ie_layers.h:883
std::vector< DataPtr > inputs
Inputs data.
Definition: ie_layers.h:1359
std::vector< std::string > activations
Activations used inside recurrent cell.
Definition: ie_layers.h:1414
int stride
Definition: ie_layers.h:1349
std::string type
Layer type.
Definition: ie_layers.h:47
unsigned int _k
K.
Definition: ie_layers.h:1038
Precision precision
Layer precision.
Definition: ie_layers.h:54
class CNNLayer GenericLayer
Alias for CNNLayer object.
Definition: ie_layers.h:619
unsigned int _out_depth
A number of output feature maps (size) generating the 3'rd output dimension.
Definition: ie_layers.h:696
float stride_w
Value of width step between grid cells.
Definition: ie_layers.h:2329
eOperation
Defines possible operations that can be used.
Definition: ie_layers.h:1198
ePadMode pad_mode
Mode of pad operation.
Definition: ie_layers.h:1742
PoolType
Defines available pooling types.
Definition: ie_layers.h:803
unsigned int _out_num
A size of output.
Definition: ie_layers.h:972
unsigned int _axis
An axis on which concatenation operation is performed.
Definition: ie_layers.h:993
float max_value
A maximum value.
Definition: ie_layers.h:1158
UserValue userValue
Convenience user values to store in this object as extra data.
Definition: ie_layers.h:135
bool _exclude_pad
A flag that indicates if padding is excluded or not.
Definition: ie_layers.h:813
std::string _auto_pad
Auto padding type.
Definition: ie_layers.h:704
std::string end_mask
Analogous to begin_mask.
Definition: ie_layers.h:1791
PropertyVector< unsigned int > _kernel
A convolution kernel array [X, Y, Z, ...].
Definition: ie_layers.h:676
ePadMode
Defines possible modes of pad operation.
Definition: ie_layers.h:1729
int hidden_size
Size of hidden state data.
Definition: ie_layers.h:1401
PropertyVector< unsigned int > _pads_end
A convolution paddings end array [X, Y, Z, ...].
Definition: ie_layers.h:684
std::vector< PortMap > output_port_map
Output ports map.
Definition: ie_layers.h:1364
This is a header file with common inference engine definitions.
int across_channels
Indicate that mean value is calculated across channels.
Definition: ie_layers.h:1113
Ptr _fusedWith
If suggested to fuse - a pointer to the layer which needs to be fused with this layer.
Definition: ie_layers.h:130
This class holds precision value and provides precision related operations.
Definition: ie_precision.hpp:22
unsigned int _in_depth
A number of input feature maps (size) generating the 3'rd input dimension.
Definition: ie_layers.h:878
CellType cellType
Direct type of recurrent cell (including subtypes) Description of particular cell semantics is in LST...
Definition: ie_layers.h:1394
unsigned int group
The group of output shuffled channels.
Definition: ie_layers.h:1831