欢迎回到MindSpore神经网络编程系列。在这篇文章中,我们将通过了解MindSpore中的一些数据类型以及相应的转化。废话不多说,我们开始吧。
一、数据类型
1.数值类型数据
数据类型 | 描述 |
mindspore.int8 | 8-bit integer |
mindspore.int16 | 16-bit integer |
mindspore.int32 |
32-bit integer |
mindspore.int64 | 64-bit integer |
mindspore.uint8 | unsigned 8-bit integer |
mindspore.uint16 | unsigned 16-bit integer |
mindspore.uint32 | unsigned 32-bit integer |
mindspore.uint64 | unsigned 64-bit integer |
mindspore.float16 | 16-bit floating-point number |
mindspore.float32 | 32-bit floating-point number |
mindspore.float64 |
64-bit floating-point number |
mindspore.bool_ | Boolean True or False |
2.其它数据类型
数据类型 | 描述 |
tensor |
MindSpore中的张量数据类型,用于存储数据使用 |
int_ | 标量 |
uint | 无符号整型标量 |
float_ | 浮点标量 |
number_ | 包括int_ , uint , float_ and bool_ . |
list_ | 集合包括tensor,[T0,T1,T2…Tn] |
tuple_ | 元组包括tensor,[T0,T1…Tn] |
function |
两种方式返回,当function不是None时,直接返回Func,另一种当function为None时返回Func(args: List[T0,T1,…,Tn], retval: T) |
type_type | 类型定义 |
type_none | 如果没有匹配到数据类型,默认返回 |
symbolic_key | 变量的值用作 env_type 中变量的键 |
env_type | 用于存储函数的free变量的梯度,key为free变量节点的symbolic_key,value为梯度 |
二、代码解释
1.将mindspore数据类型转换为numpy数据类型
print(mindspore.dtype_to_nptype(mstype.int32)) print(mindspore.dtype_to_nptype(mstype.float32)) >>> <class 'numpy.int32'> <class 'numpy.float32'>
2.将python内置数据类型转换为midnspore数据类型
print(mindspore.pytype_to_dtype(int)) print(mindspore.pytype_to_dtype(list)) print(mindspore.pytype_to_dtype(float)) >>> Int64 List Float64
3.将mindspore数据类型转换为python内置数据类型
print(mindspore.dtype_to_pytype(mstype.float32)) >>> <class 'float'>