Tensorflow model.execute(dict)中提供的dict[';ToFloat';]的形状必须为[]

Tensorflow model.execute(dict)中提供的dict[';ToFloat';]的形状必须为[],tensorflow,tensorflow2.0,tensorflow.js,google-vision,automl,Tensorflow,Tensorflow2.0,Tensorflow.js,Google Vision,Automl,**我知道类似的问题** 我的问题是针对我的特殊情况。。。 我使用Google Vision训练自己的模型来检测自定义对象。 我在过去遇到过类似的形状错误,我通过重塑输入图像解决了这些错误 这个错误告诉我,我的形状必须是空数组或空形状。这可能吗?如果这不是小故障,如何解决 这就是我如何解决以前在其他项目中,当它抱怨形状时出现的错误。此解决方案不适用于空阵列/形状 const model = await autoML.loadObjectDetection('./model/model.j

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

我的问题是针对我的特殊情况。。。 我使用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);

当我将来自Vision AI的tfjs模型导出到tfjs模型并随后加载模型时,我也遇到了同样的问题

解决方法:


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

转换模型时一定会出现一些问题,因为即使在model.json中,输入形状也是“tensorShape”:{“dim”:[{“size”:“-1”},{“size”:“-1”},{“size”:“-1”},{“size”:“3”}}}},这并不能让senseThanks澄清这一点。作为一个新手,我不确定我的假设是否正确。此外,我注意到dict.txt中所有标签旁边的符号或字母“d”。3小时的培训结束后,google vision决定结束对我的模型的培训,似乎有什么事情正在进行中。TWICEI建议在tensorflow.js或google vision的github页面上打开此问题。@DT还没有……我会联系google的automl vision团队,看看他们是否有解决方案。我也有同样的问题。我怀疑Vision团队推出的更新中有一个bug。从我可以调试的情况来看,问题在于加载model.json的方法。我用了一个模型,从这一步一步地训练。与您的错误代码相同。当从前面提到的文章中加载模型时,它是有效的。当从相对(或绝对)路径加载时,我得到
必须为[]
错误。请让我试试这个。纯粹出于好奇。您最后使用了哪种型号的装载机?AutoML模型加载器还是两个tsjs模型加载器之一?一个名为graph loader,另一个名为目前我无法理解的东西。我使用了
this.model=wait automl.loadObjectDetection(“/models/mymodel/model.json”);const predictions=等待this.model.detect(this.imageObject)
您能否共享将保存的模型转换为与automl.loadObjectDetection兼容的Tensorflowjs模型所运行的确切命令?运行
Tensorflowjs\u转换器\--输入\格式=tf\保存的\模型\--输出\格式=tfjs\图形\模型\--签名\名称=服务\默认\保存的\模型\标记=服务\/tmp\/tmp
我得到了这个错误
ValueError:optimization LookupTableFindV2、DecodeJpeg、HashTableV2之前的模型中不支持的操作
@user896993您可以设置标志--skip_op_check=skip_op_check(或接受向导中的选项)