DelayedInitializer#
Domain:
ai.rtSince version: 1
Defers materialization of a tensor stored in an external weights file.
In onnx-light, `load_device`` must be either ``"cpu"`` or ``"file"` and
`runtime_device`` must be ``"cpu"``. When ``load_device`` is ``"cpu"`, the
kernel loads the tensor bytes during kernel initialization and returns a CPU
copy at execution time. When `load_device`` is ``"file"`, initialization does
not touch the file and execution loads the tensor bytes directly from
`filename`` at byte ``offset`.
The static output shape comes from the required `shape` attribute and the
element type comes from the required `dtype` attribute.
Outputs
output (T): Tensor produced by the delayed initializer.
Attributes
dtype (int): Element type of the output tensor, encoded as a TensorProto::DataType value.
filename (string): Filename containing the serialized tensor payload.
load_device (string): Device where the initializer is first loaded.
offset (int): Byte offset of the tensor payload within
filename.runtime_device (string): Device where the initializer is moved at runtime.
shape (int[]): Shape of the output tensor.
Type Constraints
T: Constrain output to tensor types backed by raw byte storage. Allowed types: tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8).
Examples#
test_cc_delayedinitializer_cpu
Node:
ai.rt.DelayedInitializer() -> (y)
Attributes:
shape = [3]
dtype = 1
load_device = "cpu"
runtime_device = "cpu"
filename = "/tmp/onnx_light_backend_delayedinitializer_cpu.bin"
offset = 0
Inputs:
Outputs:
y: shape=(3,), dtype=float32
[3., 4., 5.]
test_cc_delayedinitializer_file
Node:
ai.rt.DelayedInitializer() -> (y)
Attributes:
shape = [2]
dtype = 1
load_device = "file"
runtime_device = "cpu"
filename = "/tmp/onnx_light_backend_delayedinitializer_file.bin"
offset = 8
Inputs:
Outputs:
y: shape=(2,), dtype=float32
[ 1.5, -2. ]