javascript - 使用 tf.browser.toPixels() 时内存泄漏

标签 javascript tensorflow tensorflow.js

以下行导致内存泄漏。

await tf.browser.toPixels(val, temp);

val 是维度数组 img_size * img_sizetemp 是一个 Canvas 。没有处理一个张量。由于它是异步调用,因此不能将其放入 tf.tidy() 中。另外根据官方文档 tf.browser.toPixels() 应该返回一个 promise 。那么我们如何处理正在形成的张量呢? (张量的大小 = img_size * img_size *4 )

相关代码:

let val ;     //val is an array not a tensor
        tf.tidy(()=>{
        let values = model.predict(batched).dataSync(); //batched is a tensor
        values = Array.from(values);
        //scale values
        values = values.map(x => x * 255)
        val = new Array();
        while (values.length > 0) val.push(values.splice(0, image_size));
        });
        await tf.browser.toPixels(val, temp); //this line causes leak,commenting it fixes it
        finalRes.getContext('2d').drawImage(temp, dx, dy);

最佳答案

这是 tfjs 中的一个内部错误。现已修复here

关于javascript - 使用 tf.browser.toPixels() 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60678015/

相关文章:

python - 为什么 `tf.data.Dataset.map`只运行一次?

python - 将函数应用于 3D、2 channel Keras 张量的每个元素

machine-learning - Tensorflow.js/Keras LSTM 具有多个序列?

tensorflow - TensorFlow 的 model.fit() 函数中的 batchSize 是多少?

javascript - 如何将 php 文件中的值包含到 jQuery 中并将其放入 span 元素中?

javascript - 扩展范围(如 window、gBrowser)中有哪些变量可用?

python - 在 nvidia jetson tx2 上安装 tensorflow 的问题

javascript - 请求的纹理大小 [0x0] 无效。我在浏览器中加载图像时出错

javascript - 用于语言翻译的 JSON

javascript - ES6 Object.forOwn 循环对象键功能