Class MSTensor
Defined in File types.h
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.
-
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.
-
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.
-
inline std::string Name() const