android中的自定义tensorflow模型

我已经创建了一个自定义模型。

之后,复制了此链接“ https://github.com/tensorflow/examples/tree/master/lite/examples/object_detection/android” 用自己的.tflite更改了默认.tflite 更改缓冲区后(我的模型未量化)(我应该由缓冲区1080000设置,默认值为270000) 但是错误在TFLiteObjectDetectionAPIModel.java和行tfLite.runForMultipleInputsoutputs(inputArray,outputMap);

控制台中的错误是“ java.lang.IllegalArgumentException:无效的输出张量索引:1” 我用谷歌搜索并测试了大多数答案,但是我找不到真正的答案!

我已将“ tfLite.runForMultipleInputsoutputs(inputArray,outputMap);”更改为“ tfLite.run(imgData,outputLocations);” 而且该错误没有任何问题,但是此代码“ tfLite.runForMultipleInputsoutputs(inputArray,outputMap);”没有任何响应 任何建议的帮助吗?

我的模型是“ https://dinasys.ir/androidTF/assets2.zip”或“ https://dinasys.ir/androidTF/assets3.zip” 它们是相同的,但是资产3已接受了11个小时的培训,而其他3则少于10个小时。

yingjianfeng09 回答:android中的自定义tensorflow模型

我在我的项目中尝试使用您的模型。

tfLite.run模式下存在问题,它无法解析DataType,但是在tfLite.runForMultipleInputsOutputs模式下,一切正常。

您应该知道,根据docs使用TF-Lite,tflite.run()的两个参数都必须是张量。但是对于输出参数,您仅传递单个浮点数。因此,我很确定这是tfLite.run模式错误"cannot resolve DataType of java.lang.Float"的根本原因。

注意:同样根据文档,原始ByteBuffers以及支持的数据类型(floatintlong,{{1} })支持。您只需对输出执行相同的操作。

我为您上传了我的项目。

使用此link进行下载。

您还可以从here克隆它

如有任何疑问,请随时发表评论。

本文链接:https://www.f2er.com/3146280.html

大家都在问