将 C++ TensorFlow 与 WebAssembly 后端一起使用



出于实验目的,是否可以将 TensorFlow 的C++版本与 tfjs 的 WebAssembly 后端一起使用?

如果可能,那么如何做到这一点?

您链接到的 WebAssembly 后端是 TensorFlow 的C++版本,使用 Emscripten 编译为 WebAssembly。它在GitHub上有使用说明。

您需要下载 tfjs 的 wasm 软件包。由于后端是异步的,因此您需要等到它准备就绪后再调用将包含张量操作的main函数。需要注意的是,wasm 后端尚不支持所有操作

// Import @tensorflow/tfjs or @tensorflow/tfjs-core
import * as tf from '@tensorflow/tfjs';
// Adds the WASM backend to the global backend registry.
import '@tensorflow/tfjs-backend-wasm';
// Set the backend to WASM and wait for the module to be ready.
tf.setBackend('wasm').then(() => main());

这是不可能的,因为WebAssembly模块是由JS导入和解析的,而不是C++。您将无法将.WASM文件导入C++。

但是 TensorflowJS 使用的 WASM 后端是从 C/C++编译到 WebAssembly 的,Google 提供了一个存储库 XNNPACK,如果你真的愿意,它允许你直接访问低级功能。您可以在导入XNNPACK函数的C++中构建一个项目,然后将其自己编译为单个WebAssembly模块。

相关内容

  • 没有找到相关文章

最新更新