Class MSTensor

Class Documentation

class MSTensor

The MSTensor class defines a tensor in MindSpore.

Public Functions

MSTensor()

Constructor of MSTensor.

explicit MSTensor(const std::shared_ptr<Impl> &impl)

Constructor of MSTensor.

inline MSTensor(const std::string &name, DataType type, const std::vector<int64_t> &shape, const void *data, size_t data_len)

Constructor of MSTensor.

explicit MSTensor(std::nullptr_t)

Constructor of MSTensor.

~MSTensor()

Destructor of MSTensor.

inline std::string Name() const

Obtains the name of the MSTensor.

Returns:

The name of the MSTensor.

enum DataType DataType() const

Obtains the data type of the MSTensor.

Returns:

The data type of the MSTensor.

const std::vector<int64_t> &Shape() const

Obtains the shape of the MSTensor.

Returns:

The shape of the MSTensor.

int64_t ElementNum() const

Obtains the number of elements of the MSTensor.

Returns:

The number of elements of the MSTensor.

std::shared_ptr<const void> Data() const

Obtains a shared pointer to the copy of data of the MSTensor. The data can be read on host.

Returns:

A shared pointer to the copy of data of the MSTensor.

void *MutableData()

Obtains the pointer to the data of the MSTensor. If the MSTensor is a device tensor, the data cannot be accessed directly on host.

Returns:

A pointer to the data of the MSTensor.

size_t DataSize() const

Obtains the length of the data of the MSTensor, in bytes.

Returns:

The length of the data of the MSTensor, in bytes.

int GetDeviceId() const

Get the MSTensor device id.

Returns:

device id of MSTensor

std::string GetDevice() const

Get the MSTensor device type.

Returns:

device type of MSTensor

bool IsConst() const

Get whether the MSTensor data is const data.

Returns:

Const flag of MSTensor

bool IsDevice() const

Gets the boolean value that indicates whether the memory of MSTensor is on device.

Returns:

The boolean value that indicates whether the memory of MSTensor is on device.

MSTensor *Clone() const

Gets a deep copy of the MSTensor, must be used in pair with DestroyTensorPtr.

Returns:

A pointer points to a deep copy of the MSTensor.

bool operator==(std::nullptr_t) const

Gets the boolean value that indicates whether the MSTensor is valid.

Returns:

The boolean value that indicates whether the MSTensor is valid.

bool operator!=(std::nullptr_t) const

Gets the boolean value that indicates whether the MSTensor is valid.

Returns:

The boolean value that indicates whether the MSTensor is valid.

bool operator==(const MSTensor &tensor) const

Get the boolean value that indicates whether the MSTensor equals tensor.

Parameters:

tensor[in] MSTensor.

Returns:

The boolean value that indicates whether the MSTensor equals tensor.

bool operator!=(const MSTensor &tensor) const

Get the boolean value that indicates whether the MSTensor not equals tensor.

Parameters:

tensor[in] MSTensor.

Returns:

The boolean value that indicates whether the MSTensor not equals tensor.

void SetShape(const std::vector<int64_t> &shape)

Set the shape of for the MSTensor.

Parameters:

shape[in] Shape of the MSTensor, a vector of int64_t.

void SetDataType(enum DataType data_type)

Set the data type for the MSTensor.

Parameters:

data_type[in] The data type of the MSTensor.

inline void SetTensorName(const std::string &name)

Set the name for the MSTensor.

Parameters:

name[in] The name of the MSTensor.

void SetAllocator(std::shared_ptr<Allocator> allocator)

Set the Allocator for the MSTensor.

Parameters:

allocator[in] A pointer to Allocator.

std::shared_ptr<Allocator> allocator() const

Obtain the Allocator of the MSTensor.

Returns:

A pointer to Allocator.

void SetFormat(mindspore::Format format)

Set the format for the MSTensor.

Parameters:

format[in] The format of the MSTensor.

mindspore::Format format() const

Obtain the format of the MSTensor.

Returns:

The format of the MSTensor.

void SetData(void *data, bool own_data = true)

Set the data for the MSTensor.

Note

Deprecated, this interface will be removed in the next iteration

Note

A pointer to the data should be created by malloc interface

Note

The memory pointed to origin data pointer of MSTensor needs to be managed by the user

Parameters:
  • data[in] A pointer to the data of the MSTensor.

  • own_data[in] Whether the data memory should be freed in MSTensor destruction.

void SetDeviceData(void *data)

Set the device data address for the MSTensor. Only valid for Lite.

Note

The memory pointed to origin data pointer of MSTensor needs to be managed by the user

Parameters:

data[in] A pointer to the device data of the MSTensor.

void *GetDeviceData()

Get the device data address of the MSTensor set by SetDeviceData. Only valid for Lite.

Returns:

A pointer to the device data of the MSTensor.

std::vector<QuantParam> QuantParams() const

Get the quantization parameters of the MSTensor.

Returns:

The quantization parameters of the MSTensor.

void SetQuantParams(std::vector<QuantParam> quant_params)

Set the quantization parameters for the MSTensor.

Parameters:

quant_params[in] The quantization parameters of the MSTensor.

Public Static Functions

static inline MSTensor *CreateTensor(const std::string &name, DataType type, const std::vector<int64_t> &shape, const void *data, size_t data_len, const std::string &device = "", int device_id = -1) noexcept

Creates a MSTensor object, whose data need to be copied before accessed by Model, must be used in pairs with DestroyTensorPtr.

Parameters:
  • name[in] The name of the MSTensor.

  • type[in] The data type of the MSTensor.

  • shape[in] The shape of the MSTensor.

  • data[in] The data pointer that points to allocated memory.

  • data_len[in] The length of the memory, in bytes.

  • device[in] The tensor of device type.

  • device_id[in] The tensor of device id.

Returns:

A pointer of MSTensor.

static inline MSTensor *CreateTensor(const std::string &name, const MSTensor &tensor, const std::string &device = "", int device_id = -1) noexcept

Creates a MSTensor object, whose data need to be copied before accessed by Model, must be used in pairs with DestroyTensorPtr.

Parameters:
  • name[in] The name of the MSTensor.

  • tensor[in] The src tensor.

  • device[in] The tensor of device type.

  • device_id[in] The tensor of device id.

Returns:

A pointer of MSTensor.

static inline MSTensor *CreateRefTensor(const std::string &name, DataType type, const std::vector<int64_t> &shape, const void *data, size_t data_len, bool own_data = true) noexcept

Creates a MSTensor object, whose data can be directly accessed by Model, must be used in pairs with DestroyTensorPtr.

Parameters:
  • name[in] The name of the MSTensor.

  • type[in] The data type of the MSTensor.

  • shape[in] The shape of the MSTensor.

  • data[in] The data pointer that points to allocated memory.

  • data_len[in] The length of the memory, in bytes.

  • own_data[in] Whether the data memory should be freed in MSTensor destruction.

Returns:

A pointer of MSTensor.

static inline MSTensor CreateDeviceTensor(const std::string &name, DataType type, const std::vector<int64_t> &shape, void *data, size_t data_len) noexcept

Creates a MSTensor object, whose device data can be directly accessed by Model, must be used in pairs with DestroyTensorPtr.

Parameters:
  • name[in] The name of the MSTensor.

  • type[in] The data type of the MSTensor.

  • shape[in] The shape of the MSTensor.

  • data[in] The data pointer that points to device memory.

  • data_len[in] The length of the memory, in bytes.

Returns:

A pointer of MSTensor.

static inline MSTensor *CreateTensorFromFile(const std::string &file, DataType type = DataType::kNumberTypeUInt8, const std::vector<int64_t> &shape = {}) noexcept

Creates a MSTensor object from local file, must be used in pairs with DestroyTensorPtr.

Parameters:
  • file[in] Path of file to be read.

  • type[in] The data type of the MSTensor.

  • shape[in] The shape of the MSTensor.

Returns:

A pointer of MSTensor.

static inline MSTensor *StringsToTensor(const std::string &name, const std::vector<std::string> &str)

Create a string type MSTensor object whose data can be accessed by Model only after being copied, must be used in pair with DestroyTensorPtr.

Parameters:
  • name[in] The name of the MSTensor.

  • str[in] A vector container containing several strings.

Returns:

A pointer of MSTensor.

static inline std::vector<std::string> TensorToStrings(const MSTensor &tensor)

Parse the string type MSTensor object into strings.

Parameters:

tensor[in] A MSTensor object.

Returns:

A vector container containing several strings.

static void DestroyTensorPtr(MSTensor *tensor) noexcept

Destroy an object created by Clone, StringsToTensor, CreateRefTensor or CreateTensor. Do not use it to destroy MSTensor from other sources.

Parameters:

tensor[in] A MSTensor object.