onnxruntime
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4import { Tensor } from 'onnxruntime-common';
5
6import { tensorTypeToTypedArrayConstructor } from '../wasm-common';
7
8export const createView = (
9dataBuffer: ArrayBuffer,
10type: Tensor.Type,
11):
12| Int32Array
13| Uint32Array
14| BigInt64Array
15| BigUint64Array
16| Uint8Array
17| Float32Array
18| Float64Array
19| Int8Array
20| Int16Array
21| Uint16Array => new (tensorTypeToTypedArrayConstructor(type))(dataBuffer);
22
23/**
24* a TensorView does not own the data.
25*/
26export interface TensorView {
27readonly data: number;
28readonly dataType: number;
29readonly dims: readonly number[];
30
31/**
32* get a Float16Array data view of the tensor data. tensor data must be on CPU.
33*/
34getUint16Array(): Uint16Array;
35
36/**
37* get a Float32Array data view of the tensor data. tensor data must be on CPU.
38*/
39getFloat32Array(): Float32Array;
40
41/**
42* get a BigInt64Array data view of the tensor data. tensor data must be on CPU.
43*/
44getBigInt64Array(): BigInt64Array;
45
46/**
47* get a Int32Array data view of the tensor data. tensor data must be on CPU.
48*/
49getInt32Array(): Int32Array;
50
51/**
52* get a Uint16Array data view of the tensor data. tensor data must be on CPU.
53*/
54getUint16Array(): Uint16Array;
55
56/**
57* create a new tensor view with the same data but different dimensions.
58*/
59reshape(newDims: readonly number[]): TensorView;
60}
61