22 class INFERENCE_ENGINE_API_CLASS(BlockingDesc) {
90 return offsetPaddingToData;
137 size_t offsetPadding;
143 class INFERENCE_ENGINE_API_CLASS(TensorDesc) {
220 bool inconsistentLayout =
true;
223 inconsistentLayout = !dims.empty();
226 inconsistentLayout = dims.size() != 1;
228 case Layout::BLOCKED:
229 inconsistentLayout =
false;
233 inconsistentLayout = dims.size() != 5;
238 inconsistentLayout = dims.size() != 4;
241 inconsistentLayout = dims.size() != 3;
246 inconsistentLayout = dims.size() != 2;
251 if (inconsistentLayout)
252 THROW_IE_EXCEPTION <<
"Size of dims(" << std::to_string(dims.size()) <<
") and format(" << l <<
") are inconsistent.";
285 bool operator == (
const TensorDesc& rhs)
const;
291 bool operator != (
const TensorDesc& rhs)
const;
304 size_t offset(
size_t l)
const;
334 static const size_t I_N = 3;
335 static const size_t I_C = 2;
336 static const size_t I_H = 1;
337 static const size_t I_W = 0;
343 class INFERENCE_ENGINE_API_CLASS(LayoutOffsetCounter) {
373 if (dims.size() == 0)
return;
381 size_t ps = srcOffsetCounter.Offset(pos);
382 size_t pd = destOffsetCounter.
Offset(pos);
384 destBuffer[pd] = sourceBuffer[ps];
389 while (pos[caret] >= dims[caret]) {
392 if (caret == pos.size()) {
#define THROW_IE_EXCEPTION
A macro used to throw the exception with a notable description.
Definition: ie_exception.hpp:22
Layout getLayout() const
Returns the memory layout.
Definition: ie_layouts.h:211
std::vector< size_t > SizeVector
Represents tensor size. The order is opposite to the order in Caffe*: (w,h,n,b) where the most freque...
Definition: ie_common.h:26
Definition: ie_argmax_layer.hpp:11
Layout
Layouts that the inference engine supports.
Definition: ie_common.h:76
const BlockingDesc & getBlockingDesc() const
Returns the blocking descriptor.
Definition: ie_layouts.h:276
void setLayout(Layout l)
Sets the layout.
Definition: ie_layouts.h:219
This class helps calculating offset in different layouts.
Definition: ie_layouts.h:343
const SizeVector & getStrides() const
Returns strides for each dimension.
Definition: ie_layouts.h:105
This class defines Tensor description.
Definition: ie_layouts.h:143
SizeVector & getDims()
Returns the vector of dimensions.
Definition: ie_layouts.h:191
A header file that provides class for describing precision of data.
const SizeVector & getBlockDims() const
Returns the blocked dimensions vector.
Definition: ie_layouts.h:73
void ConvertLayout(Layout sourceLayout, Layout destLayout, const T *sourceBuffer, T *destBuffer, SizeVector dims)
Definition: ie_layouts.h:372
size_t getOffsetPadding() const
Returns the offset to the current memory block.
Definition: ie_layouts.h:97
The macro defines a symbol import/export mechanism essential for Microsoft Windows(R) OS...
const SizeVector & getDims() const
Returns the constant vector of dimensions.
Definition: ie_layouts.h:198
const SizeVector & getOrder() const
Returns the vector of order.
Definition: ie_layouts.h:81
This class describes blocking layouts.
Definition: ie_layouts.h:22
size_t Offset(SizeVector pos)
Calculates an offset for the specified layout.
const SizeVector & getOffsetPaddingToData() const
Returns the per-dimension offset vector.
Definition: ie_layouts.h:89
const Precision & getPrecision() const
Returns the memory precision.
Definition: ie_layouts.h:260
This is a header file with common inference engine definitions.
This class holds precision value and provides precision related operations.
Definition: ie_precision.hpp:19
void setPrecision(const Precision &p)
Sets the memory precision.
Definition: ie_layouts.h:268