TensorFlowJS 如何export一个async API

下属代码讨论的都是位于tfjs-core里面。

容易想到的是,在browser.ts增加:

async function fromPixelsAsync_(
    pixels: PixelData | ImageData | HTMLImageElement | HTMLCanvasElement |
        HTMLVideoElement,
    numChannels = 3): Promise<Tensor3D> {
    return await fromPixels(pixels, numChannels);
}

export const fromPixelsAsync = op({fromPixelsAsync_});

但是其实这样会报错,出错在operations.ts:

console.error('Cannot return a Promise inside of tidy.');

这是因为整个TFJS,以export+op导出的接口,默认都是会使用在tidy里面的。但是async接口是无法使用在tidy里面的。我开始debug的时候,一直在找是哪个地方通过tidy调用了fromPixelsAsync。但是其实根本没有。

还好,我记得之前TFJS里面有另一个async 接口,它的写法是这样的:

export const nonMaxSuppressionAsync = nonMaxSuppressionAsync_;

所以修改的方法就是直接去掉op就好了:

import { Tensor3D } from '../tensor';
import { PixelData } from '../types';
import
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值