- 在将网络的输出进行
console.log(output)
和作为Web Worker 发送消息返回值时,遇到错误Uncaught (in promise) DataCloneError: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': #<_Tensor> could not be cloned.
- 通过
postMessage
向 Web Worker 发送消息时,尝试序列化(克隆)一个不支持结构化克隆算法的对象(即当前情况下的_Tensor
对象)。Web Workers 依赖于这种机制来安全地在主线程和工作线程之间传递数据。
解决方案
- 需要确保只传递可以被结构化克隆的数据类型给 Web Worker。将 Tensor 转换为基础数据类型(例如数组),然后传递这些基础类型的数据。
-
实测结果:
-
其他方法可使用 SharedArrayBuffer或进行序列化与反序列化。