【问题标题】:The shape of dict['ToFloat'] provided in model.execute(dict) must be []model.execute(dict)中提供的dict['ToFloat']的shape必须是[]
【发布时间】:2023-03-28 15:16:01
【问题描述】:

** 我知道类似的问题!! **

我的问题是针对我的特殊情况... 我使用 Google Vision 训练我自己的模型来检测自定义对象。 过去我遇到过关于形状的类似错误,我通过重塑输入图像解决了这些错误。

这个特殊错误告诉我我的形状必须是空数组或空形状。这甚至可能吗?如果这不是故障,我该如何解决?

这就是我在其他项目中抱怨形状时解决以前错误的方法。此解决方案不适用于空数组/形状

    const model = await autoML.loadObjectDetection('./model/model.json');
 // const model = await tfjs.loadGraphModel('./model/model.json');
    await tfjs.ready();
    const tfImg = tfjs.browser.fromPixels(videoElement.current).expandDims(0);
    const smallImg = await tfjs.image.resizeBilinear(tfImg, [224, 224]);
    const resized = tfjs.cast(smallImg, 'float32');
    const t4d = tfjs.tensor4d(Array.from(resized.dataSync()), [1, 224, 224, 3]);
    const predictions = await modelRef.current.detect(tfImg, options);

【问题讨论】:

  • 转换模型时一定有问题,因为即使在model.json中输入形状是“tensorShape”:{“dim”:[{“size”:“-1”},{ "size": "-1"}, {"size": "-1"}, {"size": "3"}]}}} 这没有意义
  • 感谢您澄清这一点。作为新手,我不确定我的假设是否正确。此外,我注意到 dict.txt 中所有标签旁边的符号或字母“d”。当 3 小时的训练结束并且 google vision 决定结束对我的模型的训练时,似乎正在处理某些事情。两次
  • 我建议在 tensorflow.js 或 google vision 的 github 页面上打开这个 issue。
  • @DT 还没有...我会联系谷歌的 automl 视觉团队,看看他们是否有解决方案。
  • 我遇到了同样的问题。我的怀疑是 Vision 团队推送了一个包含错误的更新。从我可以调试的情况来看,问题在于加载 model.json 的方法。我使用了从这个article 逐步训练的模型。和你一样的错误代码。从上述文章的given URL 加载模型时,它可以工作。从相对(或绝对)路径加载时,我收到 must be [] 错误。请让我

标签: tensorflow tensorflow2.0 tensorflow.js google-vision automl


【解决方案1】:

当我将 Vision AI 的 tfjs 模型导出到 tfjs 模型并按照 this article 加载模型时,我遇到了同样的问题。

解决方法:

作为一种解决方法,我将模型从 Vision AI 导出为 SavedModel 格式,并将其转换为 tfjs 模型,tensorflow_converterthis guide 之后。结果可以按预期加载并正常工作。

【讨论】:

  • 我得试试这个。纯粹出于好奇。你最后用的是哪个型号的loader? AutoML 模型加载器还是两个 tsjs 模型加载器之一?一个被称为图形加载器,另一个被命名为我现在无法理解的东西。
  • 我用过this.model = await automl.loadObjectDetection( "/models/mymodel/model.json" ); const predictions = await this.model.detect(this.imageObject);
  • 您能否分享您运行的将 SavedModel 转换为与 automl.loadObjectDetection 兼容的 Tensorflowjs 模型的确切命令?
  • 运行 tensorflowjs_converter \ --input_format=tf_saved_model \ --output_format=tfjs_graph_model \ --signature_name=serving_default \ --saved_model_tags=serve \ /tmp \ /tmp 时出现此错误 ValueError: Unsupported Ops in the model before optimization LookupTableFindV2, DecodeJpeg, HashTableV2
  • @user896993 您可以设置标志:--skip_op_check=SKIP_OP_CHECK(或接受向导中的选项)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
相关资源
最近更新 更多