问题标签 [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 投票
1 回答
151 浏览

tensorflow - 加速 tensorflowjs 模型

我使用mxnet框架训练了一个模型。该模型的推理时间约为 9 毫秒。该模型主要由conv层组成,使用depthwise separable convolution。

我想在浏览器中运行该模型。我将模型转换为 ONNX 格式,然后从

ONNX -> tensorflow -> tensorflowjs。

tensorflowjs 模型的推理时间约为 129 毫秒。

有什么建议可以提高模型的性能吗?

我也尝试过ONNXJS,但它似乎仍然有一些错误

0 投票
2 回答
1631 浏览

angular - 使用带有 tensorflow JS 的自定义视觉导出模型并输入图像

我是 tensorflow.js 和 tensorflow 的新手

上下文:我们已经训练了一个模型,使用自定义视觉从图像中识别,头发长度:短、中、长。该模型已导出,我们希望在本地与 tensorflow js 一起使用。从自定义视觉导出的文件是 *.pb 文件和 labels.txt 文件。

我使用了 tensorflowjs_converter python 脚本,这是我用来将冻结模型 *.pb 转换为 json 模型的命令:

然后我将这个 model.json 和碎片粘贴到我的 Angular 客户端的 assets 文件夹中。然后我尝试加载模型并给他一个图像来获得预测,但我得到的只是索引值,因为我只需要 0:长,1:中,2:短头发长度。这是控制台的捕获 预测列表

这是我在客户端(打字稿)中用于预测的类:

这是调用上述类的类,我只给出了 canvas 元素:

我的问题是:

转换 python 命令是否正确?

我是否错过了客户中的某些内容以获得正确的索引?

感谢您的时间和回答

如果您需要更多信息,我很乐意将它们提供给您

2019 年 10 月 3 日更新

我确实使用 npm 将 tensorflowjs 更新到 1.0.0

我看到 FrozenModel 现在已弃用

导出我的自定义视觉模型会给我一个 model.pb 和 labels.txt 文件,如下所示: 自定义视觉导出

我已经尝试将这些文件与 python 一起使用,一切正常......我现在想将此 model.pb 文件转换为 model.json 文件以将其与 tensorflowjs 一起使用,为此我需要使用 tensorflowjs_converter,问题是该文件转换此保存模型的结构无效,请参阅:https ://www.tensorflow.org/guide/saved_model#structure_of_a_savedmodel_directory

唯一有效的是,如果我在转换器中使用 freeze_model 格式并给出输出节点名称:损失...像这样tensorflowjs_converter --input_format=tf_frozen_model --output_node_names='loss' --output_json OUTPUT_JSON C:\python\tf_models\hairlength\model.pb C:\python\tf_models\exports\

这些是我在运行上述命令时得到的输出: 输出文件 然后我加载模型,这是我使用导出的 json 模型加载和预测的代码(我使用了 predict() 并像你建议的那样删除了输入和输出节点) :

调用类是这个:

然后发送从网络摄像头流中获取的画布元素会给我这个错误: js错误

由于文件结构错误,如何使用“已保存模型”格式运行转换器命令?

为什么我会收到“无法编译片段着色器错误,无穷大:tf-core.esm 中未声明的标识符”?

感谢您的时间和回答

0 投票
2 回答
1675 浏览

node.js - 如何使用 Node.js 将转换后的预训练 keras 模型加载到 Tensorflow.js?

我有使用 TensorflowJs Converter 转换的预训练 keras 模型。我正在尝试将它们加载到以下脚本中

(index.js)

执行时出现以下错误node index.js

我也试过这个

但在这里我得到

系统信息

节点 v10.15.3 和 TensorflowJs v1.0.1

0 投票
1 回答
458 浏览

tensorflow.js - 加载保存的模型会导致 tfjs 中出现“'getIndices':找不到匹配的重载函数”

我遇到了一个问题,比如Loading saved_model 导致“无法编译片段着色器”用于收集操作 在此处输入图像描述

这是关于我的模型的一些事情:

我只是像那个网页一样转换我的 saved_model 。

这是 Python tensorflow 输入,如你所知,模型曾经是 python 脚本,我想将其转换为 tfjs。

我更新了 tf.js,但 loadFrozenModel 已被删除,我将其更改为 loadGraphModel,错误是“未捕获(承诺中)错误:无法解析来自 ./web_model/tensorflowjs_model.pb 的响应的模型 JSON。您的路径包含 . pb 文件扩展名。TensorFlow.js 1.0 中删除了对 .pb 模型的支持,转而支持 .json 模型。您可以使用 TensorFlow.js 1.0 转换脚本重新转换您的 Python TensorFlow 模型,也可以使用以下命令转换您的 .pb 模型tensorflow/tfjs-converter 存储库中的 'pb2json'NPM 脚本。”

所以我尝试使用 tensorflowjs 转换器 1.0.1 而不是 0.8,而我的 tf 版本是 1.13。

错误是“tensorflow.python.eager.lift_to_graph.UnliftableError:无法提升张量,因为它通过至少一条路径传递依赖于占位符,例如:IdentityN(IdentityN)<-scores(BiasAdd)<-scores/MatMul(MatMul) <- dropout/dropout/mul (Mul) <- dropout/dropout/Floor (Floor) <- dropout/dropout/add (Add) <- dropout_keep_prob (Placeholder)"

我认为是因为我错误的saved_model,

所以我改变了我的代码。

保存时“警告:tensorflow:来自 D:\Python\Python35\lib\site-packages\tensorflow\python\saved_model\signature_def_utils_impl.py:205: build_tensor_info(来自 tensorflow.python.saved_model.utils_impl)已弃用并将被删除在未来的版本中。更新说明:此功能将仅通过 v1 兼容库作为 tf.compat.v1.saved_model.utils.build_tensor_info 或 tf.compat.v1.saved_model.build_tensor_info 提供。"

错误是“由于缺少 TensorBoard 安装而导致 tf.compat.v2.summary API 受限 2019-03-20 19:43:18.894836: I tensorflow/core/grappler/devices.cc:53] 符合条件的 GPU 数量(核心数 > = 8):0(注意:TensorFlow未在CUDA支持下编译)2019-03-20 19:43:18.909183:I tensorflow/core/grappler/clusters/single_machine.cc:359]开始新会话2019-03-20 19:43:18.931823:I tensorflow/core/platform/cpu_feature_guard.cc:142]您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:AVX2 2019-03-20 19:43:18.989768:E tensorflow/core/ grappler/grappler_item_builder.cc:636] Init node embedding/W/Assign 在图 Traceback 中不存在(最近一次调用最后一次):文件“d:\anaconda3\lib\site-packages\tensorflow\python\grappler\tf_optimizer. py",第 43 行,OptimizeGraph 详细,graph_id,状态)SystemError:返回NULL而不设置错误

在处理上述异常的过程中,又出现了一个异常:

Traceback(最近一次调用最后一次):文件“d:\anaconda3\lib\runpy.py”,第 193 行,在 _run_module_as_main“ main ”中", mod_spec) 文件 "d:\anaconda3\lib\runpy.py",第 85 行,在 _run_code exec(code, run_globals) 文件 "D:\Anaconda3\Scripts\tensorflowjs_converter.exe__main__.py",第 9 行,在文件中“d:\anaconda3\lib\site-packages\tensorflowjs\converters\converter.py”,第 358 行,在主 strip_debug_ops=FLAGS.strip_debug_ops 文件“d:\anaconda3\lib\site-packages\tensorflowjs\converters\tf_saved_model_conversion_v2 .py”,第 271 行,convert_tf_saved_model 具体_func) 文件“d:\anaconda3\lib\site-packages\tensorflow\python\framework\convert_to_constants.py”,第 140 行,convert_variables_to_constants_v2 graph_def = _run_inline_graph_optimization(func) 文件“d: \anaconda3\lib\site-packages\tensorflow\python\framework\convert_to_constants.py”,第 59 行,在 _run_inline_graph_optimization 返回 tf_optimizer.OptimizeGraph(config, meta_graph) 文件“d:\anaconda3\lib\site-packages\tensorflow\python\grappler\tf_optimizer.py”,第 43 行,在 OptimizeGraph 详细,graph_id,状态)文件“d: \anaconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py”,第 548 行,在退出 c_api.TF_GetCode(self.status.status)) tensorflow.python.framework.errors_impl.InvalidArgumentError:导入元图失败,请查看错误日志以获取更多信息。”

我希望你能给我一些帮助,这个问题几乎让我发疯。谢谢!

0 投票
2 回答
2356 浏览

tensorflow.js - tensorflowjs-converter:导入元图失败,请检查错误日志以获取更多信息

我只想将 python 模型转换为 tensorflow.js 模型,但保存为 .pb 后,我运行“tensorflowjs_converter --input_format=tf_saved_model --output_format=tfjs_graph_model --signature_name=serving_default --saved_model_tags=serve ./saved_model ./web_model ",出现错误。

2019-03-20 23:07:05.970985: I tensorflow/core/grappler/devices.cc:53] 符合条件的 GPU 数量(核心数 >= 8):0(注意:TensorFlow 未在 CUDA 支持下编译)2019- 03-20 23:07:05.978764: I tensorflow/core/grappler/clusters/single_machine.cc:359] 开始新会话 2019-03-20 23:07:05.985340: I tensorflow/core/platform/cpu_feature_guard.cc:142 ] 您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:AVX2 2019-03-20 23:07:06.072370: E tensorflow/core/grappler/grappler_item_builder.cc:636] 初始化节点变量/分配不存在于图回溯(最近一次调用最后一次):文件“d:\anaconda3\lib\site-packages\tensorflow\python\grappler\tf_optimizer.py”,第 43 行,在 OptimizeGraph 详细,graph_id,状态) SystemError:返回 NULL 而不设置一个错误

在处理上述异常的过程中,又出现了一个异常:

Traceback(最近一次调用最后一次):文件“d:\anaconda3\lib\runpy.py”,第 193 行,在 _run_module_as_main“ main ”中", mod_spec) 文件 "d:\anaconda3\lib\runpy.py",第 85 行,在 _run_code exec(code, run_globals) 文件 "D:\Anaconda3\Scripts\tensorflowjs_converter.exe__main__.py",第 9 行,在文件中“d:\anaconda3\lib\site-packages\tensorflowjs\converters\converter.py”,第 358 行,在主 strip_debug_ops=FLAGS.strip_debug_ops 文件“d:\anaconda3\lib\site-packages\tensorflowjs\converters\tf_saved_model_conversion_v2 .py”,第 271 行,convert_tf_saved_model 混凝土_func) 文件“d:\anaconda3\lib\site-packages\tensorflow\python\framework\convert_to_constants.py”,第 140 行,convert_variables_to_constants_v2 graph_def = _run_inline_graph_optimization(func) 文件“d: \anaconda3\lib\site-packages\tensorflow\python\framework\convert_to_constants.py”,第 59 行,在 _run_inline_graph_optimization 返回 tf_optimizer.OptimizeGraph(config, meta_graph) 文件“d:\anaconda3\lib\site-packages\tensorflow\python\grappler\tf_optimizer.py”,第 43 行,在 OptimizeGraph 详细,graph_id,状态)文件“d: \anaconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py”,第 548 行,在退出 c_api.TF_GetCode(self.status.status)) tensorflow.python.framework.errors_impl.InvalidArgumentError:导入元图失败,请查看错误日志以获取更多信息。

这是我的代码。并且tensorflow的版本是1.14.0(预览因为我安装tf 2.0失败)

0 投票
1 回答
176 浏览

tensorflow - 将 Keras 模型转换为 Layers API 格式模型以与 tensorflow.js 一起使用时出现问题

我在将 Keras 模型转换为 Layers API 格式模型以与 tensorflowjs 一起使用时遇到问题

我使用命令:

我收到一个错误“KeyError:无法打开属性(无法找到属性 'keras 版本')”

这是错误日志的图像:

错误

0 投票
1 回答
1391 浏览

javascript - 未捕获(承诺中)错误:提供的权重数据没有目标变量:block1_conv1_2/kernel

我是机器学习的新手,我正在关注这个关于如何使用 mobilenet 编写模型的博客

我设法转换了 .h5 文件模型并尝试在我的网络应用程序上实现它。

不幸的是,当我尝试加载 JSON 模型时,我收到了这个错误:

未捕获(承诺中)错误:提供的权重数据没有目标变量:block1_conv1_2/kernel。

浏览器上的错误截图

我在命令行中转换了 .h5 模型,如下所示:

tensorflowjs_converter --input_format keras model.h5 ConvertedModel/

在浏览器中加载模型的代码,我跟着这个博客

要查看模型的代码,请参阅博客链接。但下面是如何编译模型的屏幕截图。 模型编译

依赖项:

  • 张量流 1.13.1
  • Python 3.6.0
  • 张量流js 1.0.1

任何解决此问题的帮助将不胜感激。太感谢了。

0 投票
3 回答
5905 浏览

pip - 安装 tensorflowjs 时找不到 tf-nightly 的匹配分布

我正在尝试在我的虚拟环境中安装 tensorflowjs,但出现以下错误:

我尝试升级 pip 并使用 virtualenv 和 venv 创建虚拟环境,并使用和不使用选项 --no-cache-dir 进行安装。

为了重现错误,我执行以下操作:

这导致输出:

我在 macOS 10.13.6 上使用 Python 3.7.2,pip 19.0.3。

0 投票
0 回答
117 浏览

tensorflow - TFJS-转换器 | 如何将 faster_cnn_inception_v2_coco 转换为 tfjs 格式?

当我尝试将 faster_rcnn_inception_v2_coco 保存的模型转换为 Javascript 格式时,我收到了一个问题:

KeyError: <tf.Tensor 'SecondStagePostprocessor/BatchMultiClassNonMaxSuppresion/map/while/Switch_1:0' shape=<unkknown> dtype=float32>

环境:python3.6,tensorflowjs 1.0.1,MacOS Mojave 10.14.3

重现步骤:

  1. 下载faster_rcnn_inception_v2_coco tar并解压
  2. 尝试转换

您能根据这个问题提出一些想法吗?

谢谢

0 投票
1 回答
771 浏览

tensorflow - TensorFlow Universal Sentence Encoder Lite 嵌入的范围有限?

从 TensorFlow.js 中的通用句子编码器开始,我注意到嵌入中的数字范围不是我所期望的。我期待在 [0-1] 或 [-1,1] 之间有一些分布,但没有看到其中任何一个。

对于“猫太棒了!”这句话。这是一个可视化,其中每个维度都投影到 [-0.5, 0.5] 的比例上:

在此处输入图像描述

这是“我想知道这个句子的嵌入是什么”的相同类型的可视化(我尝试的前 10 个句子的模式相似):

在此处输入图像描述

为了调试,我查看了演示 Colab notebook中是否出现了同样的事情,似乎是这样。如果我看到这两个句子的嵌入范围,这就是我看到的:

输出显示:

所以这又不是我所期待的——范围比我预期的要窄。我认为这可能是我错过的 TF 约定,但在TFHub 页面文本嵌入指南论文中看不到它,因此如果不深入研究培训代码,我不确定在哪里可以查看。

colab notebook 示例代码有一个例句,上面写着:

Universal Sentence Encoder 嵌入也支持短段落。段落的长度没有硬性限制。粗略地说,嵌入越“稀释”的时间越长。

但是对于 colab 中的所有其他示例,甚至是一个单词示例,嵌入的范围大致相同。

我假设这个范围不仅是任意的,而且范围以零和小为中心对我来说确实有意义,但我试图了解这个比例是如何形成的。