tensorflow - 在 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 - 没有网络工作者,冻结选项卡。
场景 2 - 使用 web worker 进行培训,gfx.offscreencanvas.enabled = false。控制台中没有任何活动,也没有错误日志。没有回调被调用。
场景 3 - 使用 web worker 进行培训,gfx.offscreencanvas.enabled = true。选项卡崩溃,控制台中没有错误日志。没有回调被调用。
笔记:
在以下所有场景中,推理都很完美。
此外,相同的代码适用于 chrome 中的所有场景,没有任何问题。所以我有点困惑为什么它不能在 Firefox 上运行。
在这个问题上的任何帮助指导都会非常有帮助。
解决方案
Firefox 在很多方面与 WebWorker 不兼容...
- 不支持 Web Worker 中的 WebGL,使用仅限于 WASM
- 由于 WebGL 内存处理,使用 WebGL(或任何使用 Chromium 的浏览器)时性能只有 Chrome 的一半
因此,我认为问题在于 WebAssembly(WASM)由于对计算能力的访问较少而无法编译模型。
推荐阅读
- continuous-integration - VSTS 有人设法在 azure-pipelines.yml 中使用“安全文件”吗?
- blazor - 如何在 Blazor 中异步加载数据
- python - 定义函数或类以使用 tkinter 浏览和列出多个目录
- drupal-8 - D8 - 我需要在我的街区使用许多服务,这段代码对吗?
- javascript - 从父节点中删除子节点
- python-2.7 - Apache Beam 在 Google Dataflow 工作器上的“process_outputs”期间出现令人困惑的错误
- git - Git 没有从 master 看到我的分支,如何取回它?
- openshift - 带有运行 Java > 8 的图像的 fabric8 maven 插件配置
- python - 使用 Python 编辑大型 Excel 文件
- json - Angular - 将json文件分配给类的问题