onnx._custom_element_types¶
此模組定義了 numpy 不支援的自訂 dtype。函數 onnx.numpy_helper.from_array()
和 onnx.numpy_helper.to_array()
使用它們來轉換從/到這些類型的陣列。類別 onnx.reference.ReferenceEvalutor
也會使用它們。若要建立用於單元測試的這類陣列,例如,可以方便地寫入如下程式碼
import numpy as np
from onnx import TensorProto
from onnx.reference.ops.op_cast import Cast_19 as Cast
tensor_bfloat16 = Cast.eval(np.array([0, 1], dtype=np.float32), to=TensorProto.BFLOAT16)
以下使用的 numpy 表示法 dtype 僅供內部使用。未來可能會根據這些 numpy 類型的產業標準化而變更。
- onnx._custom_element_types.bfloat16 = dtype((numpy.uint16, [('bfloat16', '<u2')]))¶
將 bfloat16 定義為 uint16。
- onnx._custom_element_types.float4e2m1 = dtype((numpy.uint8, [('float4e2m1', 'u1')]))¶
定義 float 4 e2m1 類型,如需技術細節,請參閱 以 4 位元儲存的浮點數。請注意,一個整數會使用一個位元組儲存,因此比其 onnx 大小大兩倍。
- onnx._custom_element_types.float8e4m3fn = dtype((numpy.uint8, [('e4m3fn', 'u1')]))¶
定義 float 8 e4m3fn 類型,如需技術細節,請參閱 以 8 位元儲存的浮點數。
- onnx._custom_element_types.float8e4m3fnuz = dtype((numpy.uint8, [('e4m3fnuz', 'u1')]))¶
定義 float 8 e4m3fnuz 類型,如需技術細節,請參閱 以 8 位元儲存的浮點數。
- onnx._custom_element_types.float8e5m2 = dtype((numpy.uint8, [('e5m2', 'u1')]))¶
定義 float 8 e5m2 類型,如需技術細節,請參閱 以 8 位元儲存的浮點數。
- onnx._custom_element_types.float8e5m2fnuz = dtype((numpy.uint8, [('e5m2fnuz', 'u1')]))¶
定義 float 8 e5m2fnuz 類型,如需技術細節,請參閱 以 8 位元儲存的浮點數。