Class MSTensor

Class Documentation

class MSTensor

The MSTensor class defines a tensor in MindSpore.

Public Functions

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.

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.

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

Set the shape of for the MSTensor. Only valid for Lite.

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. Only valid for Lite.

Parameters

data_type[in] The data type of the MSTensor.

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

Set the name for the MSTensor. Only valid for Lite.

Parameters

name[in] The name of the MSTensor.

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

Set the Allocator for the MSTensor. Only valid for Lite.

Parameters

allocator[in] A pointer to Allocator.

std::shared_ptr<Allocator> allocator() const

Obtain the Allocator of the MSTensor. Only valid for Lite.

Returns

A pointer to Allocator.

void SetFormat(mindspore::Format format)

Set the format for the MSTensor. Only valid for Lite.

Parameters

format[in] The format of the MSTensor.

mindspore::Format format() const

Obtain the format of the MSTensor. Only valid for Lite.

Returns

The format of the MSTensor.

void SetData(void *data)

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

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.

std::vector<QuantParam> QuantParams() const

Get the quantization parameters of the MSTensor. Only valid for Lite.

Returns

The quantization parameters of the MSTensor.

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

Set the quantization parameters for the MSTensor. Only valid for Lite.

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) 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.

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) 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.

Returns

A pointer of MSTensor.

static inline MSTensor *CreateDevTensor(const std::string &name, DataType type, const std::vector<int64_t> &shape, const 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, CreateDevTensor or CreateTensor. Do not use it to destroy MSTensor from other sources.

Parameters

tensor[in] A MSTensor object.