工具函数模块,定义于 InfiniCore/python/infinicore/utils.py,提供数据类型转换等工具函数。
to_torch_dtype(infini_dtype):将 infinicore 数据类型转换为 PyTorch 数据类型。to_infinicore_dtype(torch_dtype):将 PyTorch 数据类型转换为 infinicore 数据类型。numpy_to_infinicore_dtype(numpy_dtype):将 NumPy 数据类型转换为 infinicore 数据类型。infinicore_to_numpy_dtype(infini_dtype):将 infinicore 数据类型转换为 NumPy 数据类型。
def to_torch_dtype(infini_dtype) -> torch.dtype:
"""Convert infinicore data type to PyTorch data type"""
def to_infinicore_dtype(torch_dtype) -> dtype:
"""Convert PyTorch data type to infinicore data type"""
def numpy_to_infinicore_dtype(numpy_dtype) -> dtype:
"""Convert numpy data type to infinicore data type"""
def infinicore_to_numpy_dtype(infini_dtype) -> numpy.dtype:
"""Convert infinicore data type to numpy data type"""float16↔torch.float16float32↔torch.float32bfloat16↔torch.bfloat16int8↔torch.int8int16↔torch.int16int32↔torch.int32int64↔torch.int64uint8↔torch.uint8
float32↔np.float32float64↔np.float64float16↔np.float16bfloat16↔ml_dtypes.bfloat16int8↔np.int8int16↔np.int16int32↔np.int32int64↔np.int64uint8↔np.uint8
import infinicore as ic
import infinicore.utils as utils
import torch
import numpy as np
# infinicore ↔ PyTorch
ic_dtype = ic.float16
torch_dtype = utils.to_torch_dtype(ic_dtype) # torch.float16
ic_dtype_back = utils.to_infinicore_dtype(torch_dtype) # ic.float16
# infinicore ↔ NumPy
numpy_dtype = utils.infinicore_to_numpy_dtype(ic.float32) # np.float32
ic_dtype_back = utils.numpy_to_infinicore_dtype(numpy_dtype) # ic.float32