Content-Security-Policy 使 Tensorflow .js WASM 后端正常工作(Chrome 91.0.4472.77,macOS 11.3.1)



最新的Chrome更新在使用Tensorflow.js时破坏了WASM后端。显然,浏览器现在强制执行更严格的内容安全策略标头。

错误来源(来自控制台(:

"Initialization of backend wasm failed"
"Error: Failed to construct 'Worker': Access to the script at 'blob:https://fiddle.jshell.net/c95fbade-77fe-4945-a4dc-25a3a19f97d6' is denied by the document's Content Security Policy.

好奇是否有人找到了运行它的方法?

浏览器/OS-Chrome 91.0.4472.77/macOS Big Sur 11.3.1

要查看错误,请转到此处-https://jsfiddle.net/alex_oliynyk/2b6oa4dm/14/

干杯!

我的问题在Tensorflow.js repo中得到了回答。如果有人有同样的问题,我会把解决方案放在这里。

  1. CSP标头帮助:
'Cross-Origin-Embedder-Policy': 'require-corp',
'Cross-Origin-Opener-Policy': 'same-origin',

尽管如此,在弄清楚CSP头之后,Tensorflow.js还是不起作用。抛出连接到SIMD的错误。

  1. 这似乎暂时解决了问题:
tf.ENV.set('WASM_HAS_SIMD_SUPPORT', false);
tf.ENV.set('WASM_HAS_MULTITHREAD_SUPPORT', false);

它禁用了SIMD支持并降低了性能,因此我希望它将在未来版本的lib中得到充分解决。

干杯,

最新更新