首页 > 解决方案 > 在 Firefox 中使用 web worker 训练 LSTM 不适用于 tensorfow js

问题描述

我在训练 LSTM 层时遇到了一个非常奇怪的问题。

下面是我的模型。

_________________________________________________________________ 
Layer (type)                 Output shape              Param #   
================================================================= 
embedding (Embedding)        [1,null,256]              131584    
_________________________________________________________________ 
lstm (LSTM)                  [1,null,1024]             5246976   
_________________________________________________________________ 
lstm_1 (LSTM)                [1,null,1024]             8392704   
_________________________________________________________________ 
dense (Dense)                [1,null,514]              526850    
=================================================================
_________________________________________________________________ 
  1. 场景 1 - 没有网络工作者,冻结选项卡。

  2. 场景 2 - 使用 web worker 进行培训,gfx.offscreencanvas.enabled = false。控制台中没有任何活动,也没有错误日志。没有回调被调用。

  3. 场景 3 - 使用 web worker 进行培训,gfx.offscreencanvas.enabled = true。选项卡崩溃,控制台中没有错误日志。没有回调被调用。

笔记:

在以下所有场景中,推理都很完美。

此外,相同的代码适用于 chrome 中的所有场景,没有任何问题。所以我有点困惑为什么它不能在 Firefox 上运行。

在这个问题上的任何帮助指导都会非常有帮助。

标签: tensorflowfirefoxlstmtensorflow.js

解决方案


Firefox 在很多方面与 WebWorker 不兼容...

  • 不支持 Web Worker 中的 WebGL,使用仅限于 WASM
  • 由于 WebGL 内存处理,使用 WebGL(或任何使用 Chromium 的浏览器)时性能只有 Chrome 的一半

因此,我认为问题在于 WebAssembly(WASM)由于对计算能力的访问较少而无法编译模型。

推荐阅读