Skip to content

Latest commit

 

History

History
76 lines (56 loc) · 2.15 KB

File metadata and controls

76 lines (56 loc) · 2.15 KB

infinicore.utils 工具函数

工具函数模块,定义于 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"""

支持的数据类型

infinicore ↔ PyTorch

  • float16torch.float16
  • float32torch.float32
  • bfloat16torch.bfloat16
  • int8torch.int8
  • int16torch.int16
  • int32torch.int32
  • int64torch.int64
  • uint8torch.uint8

infinicore ↔ NumPy

  • float32np.float32
  • float64np.float64
  • float16np.float16
  • bfloat16ml_dtypes.bfloat16
  • int8np.int8
  • int16np.int16
  • int32np.int32
  • int64np.int64
  • uint8np.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

相关链接