As the spec said, when the target sizes are not specified, the output sizes should be calculated from the options.scales argument.
However, the calculation formula of the output shape is missing currently.
For example,
output_shape[axes[i]] = floor(scales[i] * (input_shape[axes[i]]) for all i in axes
output_shape[j] = input_shape[j] for j not in axes, j in range(0, input_rank)
This issue was raised by @huningxin in WebNN Chromium CL review. Thanks Ningxin!