From 4cfbfb03de1ec9afffa6461fac2badde91f1359e Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Fri, 26 Jan 2024 20:43:03 -0800 Subject: [PATCH] Bug fix: resample2d output size calculation algorithm and usage (#520) * Per #395 make it clearer that the algorithm is working on a new descriptor (a copy of the input's) * When invoking the algorithm, pass the required input argument. * Rename algorithm from "resample output sizes" to "calculate resample output sizes" which more clearly descripts what is happening and aligns with similar algorithms in the spec, and add types. --- index.bs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/index.bs b/index.bs index 04a4883b..63185150 100644 --- a/index.bs +++ b/index.bs @@ -5241,10 +5241,10 @@ partial interface MLGraphBuilder {
- To resample output sizes given |input| and |options|, run the following steps: + To calculate resample output sizes given {{MLOperand}} |input| and {{MLResample2dOptions}} |options|, run the following steps:
- 1. Let |desc| be an {{MLOperandDescriptor}} initialized to |input|.{{MLOperand/[[descriptor]]}}. + 1. Let |desc| be a new {{MLOperandDescriptor}} initialized to |input|.{{MLOperand/[[descriptor]]}}. 1. For |index| in [=the range=] 0 to the [=list/size=] of |options|.{{MLResample2dOptions/axes}}, exclusive: 1. If |options|.{{MLResample2dOptions/sizes}} [=map/exists=], set |desc|.{{MLOperand/[[descriptor]]}}.{{MLOperandDescriptor/dimensions}}[|options|.{{MLResample2dOptions/axes}}[|index|]] to |options|.{{MLResample2dOptions/sizes}}[|index|] and return |desc|. 1. Otherwise, set |desc|.{{MLOperand/[[descriptor]]}}.{{MLOperandDescriptor/dimensions}}[|options|.{{MLResample2dOptions/axes}}[|index|]] to |input|.{{MLOperand/[[descriptor]]}}.{{MLOperandDescriptor/dimensions}}[|index|] multiplied by |options|.{{MLResample2dOptions/scales}}. @@ -5260,8 +5260,7 @@ partial interface MLGraphBuilder {
1. If the [=list/size=] of |input|.{{MLOperand/[[descriptor]]}}.{{MLOperandDescriptor/dimensions}} is not 4, then [=exception/throw=] a "{{DataError}}" {{DOMException}}. 1. If [=checking resample options=] given |options| returns false, then [=exception/throw=] a "{{DataError}}" {{DOMException}}. - 1. Let |desc| be the result of [=resampling output sizes=] given |options|. - 1. If that [=exception/throws=] an error, re-[=exception/throw=] the error. + 1. Let |desc| be the result of [=calculating resample output sizes=] given |input| and |options|. 1. If any of the following sub-steps fail, [=exception/throw=] an "{{OperationError}}" {{DOMException}}. 1. Let |output| be the result of [=creating an MLOperand=] given [=this=] and |desc|. 1. Make a request to the underlying platform to: