mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-06-01 23:30:35 +00:00
### Description <!-- Describe your changes. --> refactor tensor type in onnxruntime-common. ### Motivation and Context There major motivation is that I am doing a local change to address the API part of #15312. And I am doing a refactoring of onnxruntime-common anyway (#15772). The `tensor.ts` and `tensor-impl.ts` are too large, so I split contents into multiple files to make the type declarations clearer. The original target of this change is for API only ( ie. do not refactor any implementation.). However, there are a few type/implementation inconsistencies so I also made minimal changes to fix them. ### Changes - extract `TensorUtils` for non-template interfaces - extract `TensorFactory` for all overloads of `Tensor.fromImage()` - refactor options type that used for `Tensor.fromImage()` - fix JSDoc comments to make option descriptions consistent with actual type declarations - fix an inconsistency for `options.format` and `options.bitmapFormat`; change all `bitmapFormat` to `format` - extract `ConversionUtils` for `tensor.toDataURL()` and `tensor.toImageData()` - put implementations into multiple files from `tensor-impl.ts` - fix a bug that cause unittest fail. put comments for future fix.
31 lines
985 B
TypeScript
31 lines
985 B
TypeScript
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
import {Tensor, TypedTensor} from './tensor';
|
|
import {ConversionUtils} from './tensor-conversion';
|
|
|
|
interface Properties {
|
|
/**
|
|
* Get the number of elements in the tensor.
|
|
*/
|
|
readonly size: number;
|
|
}
|
|
|
|
export interface TypedShapeUtils<T extends Tensor.Type> {
|
|
/**
|
|
* Create a new tensor with the same data buffer and specified dims.
|
|
*
|
|
* @param dims - New dimensions. Size should match the old one.
|
|
*/
|
|
reshape(dims: readonly number[]): TypedTensor<T>;
|
|
}
|
|
|
|
/**
|
|
* interface `TensorUtils` includes all utility members that does not use the type parameter from their signature.
|
|
*/
|
|
export interface TensorUtils extends Properties, ConversionUtils {}
|
|
|
|
/**
|
|
* interface `TypedShapeUtils` includes all utility members that uses the type parameter from their signature.
|
|
*/
|
|
export interface TypedTensorUtils<T extends Tensor.Type> extends TensorUtils, TypedShapeUtils<T> {}
|