MindSpore隐式类型转换的API支持

隐式类型转换

转换规则

  • 标量与Tensor运算:运算时,将标量自动转为Tensor,数据类型和参与运算的Tensor数据类型保持一致;当Tensor是bool数据类型,标量是int或float时,将标量和Tensor都转为数据类型为int32或float32的Tensor;当Tensor是int或者uint数据类型,标量是float时,将标量和Tensor都转为数据类型为float32的Tensor。

  • 不同数据类型Tensor运算:数据类型优先级排序为bool < uint8 < int8 < int16 < int32 < int64 < float16 < float32 < float64,运算时,先确定参与运算的Tensor中优先级相对最高的数据类型,然后将低优先级数据类型Tensor转换为相对最高优先级数据类型;而当int8和uint8数据类型的Tensor进行运算时,将其都转为int16的Tensor。

  • 不支持对Parameter进行数据类型转换:如果按照转换规则推导,需要对网络中定义的Parameter进行数据类型转换时,会抛出RuntimeError异常。

参与转换的数据类型

  • bool

  • int8

  • uint8

  • int16

  • int32

  • int64

  • float16

  • float32

  • float64

支持的API

mindspore.ops.Add mindspore.ops.ApplyAdadelta mindspore.ops.ApplyAdagrad
mindspore.ops.ApplyAdagradV2 mindspore.ops.ApplyAdaMax mindspore.ops.ApplyAddSign
mindspore.ops.ApplyGradientDescent mindspore.ops.ApplyMomentum mindspore.ops.ApplyPowerSign
mindspore.ops.ApplyProximalAdagrad mindspore.ops.ApplyProximalGradientDescent mindspore.ops.ApproximateEqual
mindspore.ops.Assign mindspore.ops.AssignAdd mindspore.ops.AssignSub
mindspore.ops.Atan2 mindspore.ops.BitwiseAnd mindspore.ops.BitwiseOr
mindspore.ops.BitwiseXor mindspore.ops.Div mindspore.ops.DivNoNan
mindspore.ops.Equal mindspore.ops.FloorDiv mindspore.ops.FloorMod
mindspore.ops.Greater mindspore.ops.GreaterEqual mindspore.ops.Less
mindspore.ops.LessEqual mindspore.ops.LogicalAnd mindspore.ops.LogicalOr
mindspore.ops.Maximum mindspore.ops.Minimum mindspore.ops.Mod
mindspore.ops.Mul mindspore.ops.NotEqual mindspore.ops.Pow
mindspore.ops.RealDiv mindspore.ops.ScatterAdd mindspore.ops.ScatterDiv
mindspore.ops.ScatterMax mindspore.ops.ScatterMin mindspore.ops.ScatterMul
mindspore.ops.ScatterNdAdd mindspore.ops.ScatterNdSub mindspore.ops.ScatterNdUpdate
mindspore.ops.ScatterNonAliasingAdd mindspore.ops.ScatterSub mindspore.ops.ScatterUpdate
mindspore.ops.SparseApplyAdagradV2 mindspore.ops.SparseApplyFtrl mindspore.ops.SparseApplyFtrlV2
mindspore.ops.SparseApplyProximalAdagrad mindspore.ops.SquaredDifference mindspore.ops.Sub
mindspore.ops.TruncateDiv mindspore.ops.TruncateMod mindspore.ops.Xdivy
mindspore.ops.Xlogy