Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends
InferenceEngine::Blob Class Referenceabstract

This class represents a universal container in the Inference Engine. More...

#include <ie_blob.h>

Inheritance diagram for InferenceEngine::Blob:
Inheritance graph
[legend]
Collaboration diagram for InferenceEngine::Blob:
Collaboration graph
[legend]

Public Types

using  Ptr = std::shared_ptr< Blob >
  A smart pointer containing Blob object.
 
using  CPtr = std::shared_ptr< const Blob >
  A smart pointer to the const Blob object.
 

Public Member Functions

Precision  type () const noexcept
  Returns the tensor precision of the current Blob object. More...
 
Precision  precision () const noexcept
  Returns the tensor precision of the current Blob object. More...
 
Layout  layout () const noexcept
  Returns the tensor layout of the current Blob object. More...
 
virtual  ~Blob ()=default
  Blob virtual destructor.
 
template<typename T , typename std::enable_if< !std::is_pointer< T >::value &&!std::is_reference< T >::value, int >::type = 0, typename std::enable_if< std::is_base_of< Blob, T >::value, int >::type = 0>
bool  is () noexcept
  Checks if the Blob object can be cast to the type T*. More...
 
template<typename T , typename std::enable_if< !std::is_pointer< T >::value &&!std::is_reference< T >::value, int >::type = 0, typename std::enable_if< std::is_base_of< Blob, T >::value, int >::type = 0>
bool  is () const noexcept
  Checks if the Blob object can be cast to the type const T*. More...
 
template<typename T , typename std::enable_if< !std::is_pointer< T >::value &&!std::is_reference< T >::value, int >::type = 0, typename std::enable_if< std::is_base_of< Blob, T >::value, int >::type = 0>
T *  as () noexcept
  Casts this Blob object to the type T*. Use InferenceEngine::as() to operate with shared Blob objects instead of raw pointers. More...
 
template<typename T , typename std::enable_if< !std::is_pointer< T >::value &&!std::is_reference< T >::value, int >::type = 0, typename std::enable_if< std::is_base_of< Blob, T >::value, int >::type = 0>
const T *  as () const noexcept
  Casts this Blob object to the type const T*. Use InferenceEngine::as() to operate with shared Blob objects instead of raw pointers. More...
 
  Blob (const TensorDesc &tensorDesc)
  Constructor. Creates an empty Blob object with the specified precision. More...
 
  Blob (Precision p)
  Constructor. Creates an empty Blob object with the specified precision. More...
 
  Blob (Precision p, Layout l)
  The constructor creates an empty Blob object with the specified precision and layout. More...
 
  Blob (Precision p, const SizeVector &dims)
  The constructor creates an empty Blob object with the specified precision and dimensions. More...
 
  Blob (Precision p, Layout l, const SizeVector &dims)
  The constructor creates an empty Blob object with the specified precision, layout and dimensions. More...
 
size_t  Resize (const SizeVector &dims, Layout layout=Layout::ANY) noexcept
  Changes Tensor size to the specified dimensions. If it was allocated, the previous data is deallocated and lost. More...
 
size_t  Reshape (const SizeVector &dims, Layout layout=Layout::ANY) noexcept
  Changes tensor size to the specified dimensions without changing memory. The total size remains unchanged as well as the memory layout. More...
 
const SizeVector  dims () const noexcept
  Returns the tensor dimensions vector with reversed order. More...
 
virtual const TensorDesc getTensorDesc () const noexcept
  Returns the tensor description.
 
virtual TensorDesc getTensorDesc () noexcept
  Returns the tensor description.
 
virtual size_t  size () const noexcept
  By default, returns the total number of elements (a product of all the dims or 1 for scalar) More...
 
virtual size_t  byteSize () const noexcept
  Returns the size of the current Blob in bytes.
 
virtual size_t  element_size () const noexcept=0
  Returns the number of bytes per element. The overall Blob capacity is size() * element_size(). Abstract method.
 
virtual void  allocate () noexcept=0
  Allocates memory to store the data. Abstract method.
 
virtual bool  deallocate () noexcept=0
  Releases previously allocated data. Abstract method.
 
virtual LockedMemory< void >  buffer () noexcept=0
  Gets access to the allocated memory. Abstract method. More...
 
virtual LockedMemory< const void >  cbuffer () const noexcept=0
  Gets read-only access to the allocated memory. Abstract method. More...
 

Static Public Member Functions

static Ptr  CreateFromData (const DataPtr &data)
  Creates a TBlob<> object from a Data node. More...
 

Protected Member Functions

virtual const std::shared_ptr< IAllocator > &  getAllocator () const noexcept=0
  Gets an allocator for allocator-based blobs. More...
 
virtual void *  getHandle () const noexcept=0
  Gets a handle to allocated memory. More...
 

Static Protected Member Functions

static size_t  product (const SizeVector &dims) noexcept
  Multiplies the dimension vector's values. More...
 

Protected Attributes

TensorDesc  tensorDesc
  The tensor descriptor of the given blob.
 

Friends

template<typename >
class  TBlobProxy
 

Detailed Description

This class represents a universal container in the Inference Engine.

Note
Each Blob implementation must be derived from this Blob class directly or indirectly

Constructor & Destructor Documentation

§ Blob() [1/5]

InferenceEngine::Blob::Blob ( const TensorDesc tensorDesc )
inlineexplicit

Constructor. Creates an empty Blob object with the specified precision.

Parameters
tensorDesc Defines the layout and dims of the blob

§ Blob() [2/5]

InferenceEngine::Blob::Blob ( Precision  p )
inlineexplicit

Constructor. Creates an empty Blob object with the specified precision.

Deprecated:
Use Blob::Blob(const TensorDesc &).
Parameters
p Precision type

§ Blob() [3/5]

InferenceEngine::Blob::Blob ( Precision  p,
Layout  l 
)
inline

The constructor creates an empty Blob object with the specified precision and layout.

Deprecated:
Use Blob::Blob(const TensorDesc &).
Parameters
p Precision type
l Layout

§ Blob() [4/5]

InferenceEngine::Blob::Blob ( Precision  p,
const SizeVector dims 
)
inline

The constructor creates an empty Blob object with the specified precision and dimensions.

Deprecated:
Use Blob::Blob(const TensorDesc &).
Parameters
p Tensor precision type
dims Tensor dimensions vector

§ Blob() [5/5]

InferenceEngine::Blob::Blob ( Precision  p,
Layout  l,
const SizeVector dims 
)
inline

The constructor creates an empty Blob object with the specified precision, layout and dimensions.

Deprecated:
Use Blob::Blob(const TensorDesc &).
Parameters
p tensor precision type
l tensor layout
dims Tensor dimensions vector with reversed order

Member Function Documentation

§ as() [1/2]

template<typename T , typename std::enable_if< !std::is_pointer< T >::value &&!std::is_reference< T >::value, int >::type = 0, typename std::enable_if< std::is_base_of< Blob, T >::value, int >::type = 0>
T* InferenceEngine::Blob::as ( )
inlinenoexcept

Casts this Blob object to the type T*. Use InferenceEngine::as() to operate with shared Blob objects instead of raw pointers.

Template Parameters
T Type to cast to. Must represent a class derived from the Blob
Returns
Raw pointer to the object of the type T or nullptr on error

§ as() [2/2]

template<typename T , typename std::enable_if< !std::is_pointer< T >::value &&!std::is_reference< T >::value, int >::type = 0, typename std::enable_if< std::is_base_of< Blob, T >::value, int >::type = 0>
const T* InferenceEngine::Blob::as ( ) const
inlinenoexcept

Casts this Blob object to the type const T*. Use InferenceEngine::as() to operate with shared Blob objects instead of raw pointers.

Template Parameters
T Type to cast to. Must represent a class derived from the Blob
Returns
Raw pointer to the object of the type const T or nullptr on error

§ buffer()

virtual LockedMemory<void> InferenceEngine::Blob::buffer ( )
pure virtualnoexcept

Gets access to the allocated memory. Abstract method.

Returns
A LockedMemory object

Implemented in InferenceEngine::TBlob< T, typename >, InferenceEngine::MemoryBlob, and InferenceEngine::CompoundBlob.

§ cbuffer()

virtual LockedMemory<const void> InferenceEngine::Blob::cbuffer ( ) const
pure virtualnoexcept

Gets read-only access to the allocated memory. Abstract method.

Returns
A LockedMemory object

Implemented in InferenceEngine::TBlob< T, typename >, InferenceEngine::MemoryBlob, and InferenceEngine::CompoundBlob.

§ CreateFromData()

static Ptr InferenceEngine::Blob::CreateFromData ( const DataPtr data )
static

Creates a TBlob<> object from a Data node.

Parameters
Data reference to a smart pointer of the Data node
Returns
Smart pointer to TBlob<> with the relevant C type to the precision of the data node

§ dims()

const SizeVector InferenceEngine::Blob::dims ( ) const
inlinenoexcept

Returns the tensor dimensions vector with reversed order.

Deprecated:
Use Blob::getTensorDesc and InferenceEngine::TensorDesc::getDims.

§ getAllocator()

virtual const std::shared_ptr<IAllocator>& InferenceEngine::Blob::getAllocator ( ) const
protectedpure virtualnoexcept

Gets an allocator for allocator-based blobs.

Returns
The allocator for allocator-based blobs or nullptr if there is none

Implemented in InferenceEngine::TBlob< T, typename >, InferenceEngine::MemoryBlob, and InferenceEngine::CompoundBlob.

§ getHandle()

virtual void* InferenceEngine::Blob::getHandle ( ) const
protectedpure virtualnoexcept

Gets a handle to allocated memory.

Returns
The handle to allocated memory for allocator-based blobs or nullptr if there is none

Implemented in InferenceEngine::TBlob< T, typename >, InferenceEngine::MemoryBlob, and InferenceEngine::CompoundBlob.

§ is() [1/2]

template<typename T , typename std::enable_if< !std::is_pointer< T >::value &&!std::is_reference< T >::value, int >::type = 0, typename std::enable_if< std::is_base_of< Blob, T >::value, int >::type = 0>
bool InferenceEngine::Blob::is ( )
inlinenoexcept

Checks if the Blob object can be cast to the type T*.

Template Parameters
T Type to be checked. Must represent a class derived from the Blob
Returns
true if this object can be dynamically cast to the type T*. Otherwise, false

§ is() [2/2]

template<typename T , typename std::enable_if< !std::is_pointer< T >::value &&!std::is_reference< T >::value, int >::type = 0, typename std::enable_if< std::is_base_of< Blob, T >::value, int >::type = 0>
bool InferenceEngine::Blob::is ( ) const
inlinenoexcept

Checks if the Blob object can be cast to the type const T*.

Template Parameters
T Type to be checked. Must represent a class derived from the Blob
Returns
true if this object can be dynamically cast to the type const T*. Otherwise, false

§ layout()

Layout InferenceEngine::Blob::layout ( ) const
inlinenoexcept

Returns the tensor layout of the current Blob object.

Deprecated:
Use Blob::getTensorDesc and InferenceEngine::TensorDesc::getLayout to get the current layout

§ precision()

Precision InferenceEngine::Blob::precision ( ) const
inlinenoexcept

Returns the tensor precision of the current Blob object.

Deprecated:
Use Blob::getTensorDesc and InferenceEngine::TensorDesc::getPrecision to get the precision

§ product()

static size_t InferenceEngine::Blob::product ( const SizeVector dims )
inlinestaticprotectednoexcept

Multiplies the dimension vector's values.

Parameters
dims Reference to a vector with dimension values of type size_t
Returns
Result of multiplication

§ Reshape()

size_t InferenceEngine::Blob::Reshape ( const SizeVector dims,
Layout  layout = Layout::ANY 
)
inlinenoexcept

Changes tensor size to the specified dimensions without changing memory. The total size remains unchanged as well as the memory layout.

Deprecated:
The method works with reversed dimensions. Use Blob::getTensorDesc and InferenceEngine::TensorDesc::reshape.
Parameters
dims New dimensions to set
layout New layout to set
Returns
The total number of elements (a product of all the dims)

§ Resize()

size_t InferenceEngine::Blob::Resize ( const SizeVector dims,
Layout  layout = Layout::ANY 
)
inlinenoexcept

Changes Tensor size to the specified dimensions. If it was allocated, the previous data is deallocated and lost.

Deprecated:
The method works with reversed dimensions. Create a new blob if you want to change a size.
Parameters
dims New dimensions to set
layout New layout to set
Returns
Total number of elements (a product of all the dimensions)

§ size()

virtual size_t InferenceEngine::Blob::size ( ) const
inlinevirtualnoexcept

By default, returns the total number of elements (a product of all the dims or 1 for scalar)

Return value and its interpretation heavily depend on the blob type

Reimplemented in InferenceEngine::MemoryBlob, and InferenceEngine::CompoundBlob.

§ type()

Precision InferenceEngine::Blob::type ( ) const
inlinenoexcept

Returns the tensor precision of the current Blob object.

Deprecated:
Use Blob::getTensorDesc and InferenceEngine::TensorDesc::getPrecision to get the precision

The documentation for this class was generated from the following file: