问题标签 [tensorflowjs-converter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
79 浏览

tensorflow.js - 如何将 Niftynet 模型转换为 .pb 格式

我想在 tensorflowjs 中使用 Niftynet zoo 中的模型。

当我从 Niftynet zoo 下载模型时,它们是检查点格式 (ckpt)。但是,tensorflowjs 期望模型为 pb 格式。此外,检查点格式不包含图形信息,因此我们需要使用 simple_save 或类似的 API [1] 保存模型。

所以我打算做的是:

  1. 从 Niftynet 动物园下载模型
  2. 恢复它。(这一步我需要帮助)
  3. 使用 simple_save api 保存完整的模型。这将产生 .pb 模型。(这一步我需要帮助)
  4. 使用 tensorflowjs-converter [2] 将其转换为 tensorflowjs 可以使用的 pb 格式。

那么来自 niftynet 社区的人可以帮助我完成第 2 步和第 3 步:如何使用检查点文件和配置文件加载模型并使用 simple_save api 完全保存它。

  1. https://www.tensorflow.org/guide/saved_model
  2. https://js.tensorflow.org/tutorials/import-saved-model.html
0 投票
2 回答
1834 浏览

javascript - webworkers 中的 tensorflow.js

我想通过 importScripts() 在 webWorker 中导入 2 个脚本,如下所示,但导入失败。如何处理?

错误图

0 投票
2 回答
1610 浏览

javascript - tensorflowjs 加载重新训练的 coco-ssd 模型 - 在浏览器中不起作用

我使用 Python models/research/object-detection API 用我自己的数据集重新训练 coco-ssd。我已经保存了模型并且模型在 ipython 笔记本中工作。我用 tfjs_converter 来转换它

测试1;我的代码

0 投票
0 回答
907 浏览

google-chrome-extension - 将 HTMLImageElement 传递给 tf.fromPixels() 函数

我正在研究 chrome 扩展。任务是对网页上的图像进行分类。我已经建立了模型,在进行预测之前将图像转换为张量时经常出错。我正在使用document.getElementsByTagName('img'). 这将返回一个对象。然后我tensor = tf.fromPixels(image[0])用来获取张量。

它说 :

runtime.onMessage 的事件处理程序出错:错误:传递给 tf.fromPixels() 的像素必须是 HTMLVideoElement、HTMLImageElement、HTMLCanvasElement 或 ImageData,但在 pre_process() 处是对象

请帮忙。

编辑:我的代码是:

将其传递给后台脚本:

这是消息的后台脚本侦听器

0 投票
1 回答
161 浏览

lstm - 转换为 Tensorflowjs 的 Keras LSTM 单向和双向模型没有产生正确的推理

使用的 TensorFlow.js 版本

  • 张量流 1.12.0
  • 张量流基础 1.12.0
  • 张量流GPU 1.12.0
  • 张量流中心 0.2.0
  • 张量流js 0.8.0

使用的浏览器版本

  • Windows 10 上的 Firefox 65.0 (64-it)
  • Windows 10 上的 Microsoft Edge 42.17134.1.0

问题描述

我在 Python 中创建并训练了一个基于 Keras 的 LSTM 双向模型来对视频进行分类。这个模型效果很好,并且以 90+ 的准确度对视频进行分类。但是当我使用 tensorflorjs_converter 工具将此模型转换为 tensoflorjs 模型并在浏览器上使用相同的模型时,该模型总是为任何视频输入抛出相同的输出(前 3 个结果) ——BasketballDunk;概率。0.860,平衡梁;概率。0.088,BodyWeightSquats;概率。0.024

我检查了 LSTM 双向模型的所有输入、它们的形状等,没有发现任何问题。但是无论视频输入如何,来自 LSTM 双向模型的推理仍然是相同的。我确保作为序列发送到 LSTM 模型的每个单独的视频帧都是正确的。(使用 MobileNet 模型识别每一帧,并且它正确,因此得出结论,发送到 LSTM 的帧是完美的)请帮助我识别问题并修复。所有必需的详细信息如下。

(整个模型基于陈先顺(chen0040)->[ https://github.com/chen0040/keras-video-classifier]在这个github存储库中给出的示例)

模型细节:

  • 使用 MobileNet 模型提取特征
  • 使用 LSTM 双向模型来提取提取的特征并将视频分类为 20 类之一

使用的数据集:

Tensorflowjs 转换模型:

注意:我已经尝试过 LSTM 模型(单向),同样的问题也与转换后的模型有关。唯一的区别是它产生“台球”作为概率超过 0.95 的最高预测。

重现问题的代码: 代码和测试工件位于此驱动器位置的 zip 文件中 - [ https://drive.google.com/open?id=1k_4xOPlTdbUJCBPFyT9zmdB3W5lYfuw0]

0 投票
0 回答
162 浏览

tensorflow.js - tfjs 转换器 - 不支持 dtype string24

通过转换保存的模型,我被卡住了几天:

(张量流 0.8.0)

有人可以建议我在哪里/搜索什么以避免此错误吗?

0 投票
1 回答
511 浏览

tensorflow - Tensorflow.js 转换后的模型预测与冻结模型不同/不准确的结果

当我将冻结的 PB 模型转换为 tensorflow JS 模型时,我失去了所有预测的准确性。谁能告诉我为什么以及我做错了什么?

我做了以下事情 - 我用我自己的数据集重新训练了 ImageNet 模型,如下所述: https ://codelabs.developers.google.com/codelabs/tensorflow-for-poets/#0

当我运行以下命令时,我得到了冻结模型的准确结果,例如:

它给出的以下输出是正确的:

我已经使用带有以下命令的 tensorflow JS 转换器将我的冻结模型转换为 Tensorflow JS:

当我使用与冻结模型相同的图像对 tensorflow JS 模型进行预测时,我得到了可怕的结果:

加载模型:

预测结果:

输出:

0 投票
1 回答
658 浏览

python - Tensorflowjs 转换错误:“ValueError:不支持的操作”

我正在使用以下命令将tensorflow模型转换为表单tensorflowjs

我遇到了以下神秘错误:

我的图表中确实有这些操作。我需要把它们换成更tensorflowjs友好的东西吗?

我深入谷歌,只发现了对以下标志的引用,我可以添加到tensorflowjs_converter 命令--skip_op_check=SKIP_OP_CHECK \ 这确实编译了,但是在尝试为js模型提供服务时,我遇到了类似于上面的 js 错误:

错误:不支持 Tensorflow Op:ResizeArea

任何想法如何修改我的图表或我的命令来导航这个?

谢谢

0 投票
2 回答
456 浏览

tensorflow.js - Tensorflowjs:loadFrozenModel 是否意味着我无法访问图层?

用于通过调用加载模型tf.loadModel('https://storage.googleapis.com/tfjs-models/tfjs/mobilenet_v1_0.25_128/model.json'),但是,我需要更改 mobilinet 版本。

所以,我从 tensorflowhub 获取了我需要的版本,在 tensorflow_converter 上运行它,得到了两个文件(.pb 和权重文件)。然后我使用 tf.loadGraphModel 加载它。但是,model.getLayer 抛出:

model.getLayer 不是函数。

加载看起来像这样:

然后我将 mobilinet 模型保存为冻结模型,在 tensorflow_converter 上再次运行它,并尝试将其加载为 tf.loadFrozenModel。它返回了同样的东西。

我很困惑。

有没有办法从非 keras 模型中获取图层?

编辑:为澄清起见,我从 tensoflowhub 获取的模型是: https ://tfhub.dev/google/imagenet/mobilenet_v2_075_96/classification/2

0 投票
1 回答
843 浏览

tensorflow - Tensorflow.js 错误:未知层:GaussianNoise

我按照本指南中的步骤转换了一个预训练的 keras 模型以将其与 Tensorflow.js 一起使用

现在,当我尝试使用将其导入 javascript 时

const model = tf.loadModel("{% static "keras/model.json" %}");

出现以下错误:

我正在使用 0.15.3 版本的 Tensorflow.js,以这种方式导入:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.15.3/dist/tf.min.js"></script>

我用 Tensorflow 1.12.0 和 Keras 2.2.4 训练了我的神经网络