Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[js/common] refactor tensor type in onnxruntime-common #15843

Merged
merged 2 commits into from
Jun 9, 2023

Conversation

fs-eire
Copy link
Contributor

@fs-eire fs-eire commented May 8, 2023

Description

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.

@fs-eire fs-eire merged commit 59f42cc into main Jun 9, 2023
@fs-eire fs-eire deleted the fs-eire/js-common-tensor-refactor branch June 9, 2023 23:19
siweic0 pushed a commit to siweic0/onnxruntime-web that referenced this pull request May 9, 2024
### 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 microsoft#15312. And I am doing a refactoring of onnxruntime-common
anyway (microsoft#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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants