首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Azure自定义视觉训练模型与tensorflow.js结合使用

将Azure自定义视觉训练模型与tensorflow.js结合使用
EN

Stack Overflow用户
提问于 2018-04-15 18:34:01
回答 2查看 887关注 0票数 3

我已经用Azure Custom Vision训练了一个模型,并下载了适用于安卓的TensorFlow文件(参见:https://docs.microsoft.com/en-au/azure/cognitive-services/custom-vision-service/export-your-model)。如何将其与tensorflow.js一起使用

我需要一个模型(pb文件)和权重(json文件)。然而,Azure给了我一个.pb和一个带有标签的文本文件。

根据我的研究,我还了解到还有不同的pb文件,但我找不到哪种类型的Azure Custom Vision导出。

我找到tfjs converter了。这是为了转换TensorFlow SavedModel (来自Azure的*.pb文件是SavedModel吗?)或Keras模型转换为web友好格式。但是,我需要填写"output_node_names“(如何获得这些?)。我也不能100%确定我的安卓pb文件是否等于"tf_saved_model“。

我希望有人有一个建议或起点。

EN

回答 2

Stack Overflow用户

发布于 2019-09-28 04:44:06

只是模仿我说的here来帮你省点时间。我真的希望直接导出到tfjs的选项很快就可以使用。

为了让导出的TensorFlow模型为我工作,我执行了以下步骤:

  1. 将PadV2操作替换为Pad.这个python函数应该可以做到这一点。input_filepath是.pb模型文件的路径,output_filepath是要创建的更新后的.pb文件的完整路径。

代码语言:javascript
复制
import tensorflow as tf
def ReplacePadV2(input_filepath, output_filepath):
    graph_def = tf.GraphDef()
    with open(input_filepath, 'rb') as f:
        graph_def.ParseFromString(f.read())

    for node in graph_def.node:
        if node.op == 'PadV2':
            node.op = 'Pad'
            del node.input[-1]
            print("Replaced PadV2 node: {}".format(node.name))

    with open(output_filepath, 'wb') as f:
        f.write(graph_def.SerializeToString())

  1. Install tensorflowjs 或更早版本。在更高版本中转换冻结模型is deprecated
  2. 调用转换器时,将--input_format设置为tf_frozen_model,将output_node_names设置为model_outputs。这是我使用的命令。

代码语言:javascript
复制
tensorflowjs_converter --input_format=tf_frozen_model --output_json=true --output_node_names='model_outputs' --saved_model_tags=serve  path\to\modified\model.pb  folder\to\save\converted\output

理想情况下,tf.loadGraphModel('path/to/converted/model.json')现在应该可以工作了(针对tfjs 1.0.0及更高版本进行了测试)。

票数 3
EN

Stack Overflow用户

发布于 2019-02-25 17:59:45

部分答案:

尝试使用output_node_names来实现相同的事情-以下是答案的开始:

代码语言:javascript
复制
tensorflowjs_converter --input_format=tf_frozen_model --output_node_names='model_outputs' model.pb web_model

我还不确定如何将它合并到相同的代码中-你有什么@Kasper Kamperman吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49840929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档