Android中运行Tensorflow程序3-遇到的错误及解决

在Android中运行TensorFlow程序时遇到了两个错误:A/native: tensor.cc:487 Check failed错误和java.lang.UnsatisfiedLinkError。前者由于模型中数据类型不匹配引起,解决方案是将模型中的数据类型调整为匹配。后者由于so文件路径配置不当导致,解决办法是将所有TensorFlow库的so文件放置在正确的位置,并修正配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A/native: tensor.cc:487 Check failed: dtype() == expected_dtype (9 vs. 3)

原因解释

出现这种错误的原因是:程序预期的数据是tf.int32,然而真正的数据是tf.int64。在我的应用中,出现以上错误的程序如下。
在TF模型中,有如下的定义。

self.predictions = tf.argmax(self.logits, 1, name="predictions")

这里,函数tf.argmax返回的Tensor的类型是tf.int64
在进行了freeze_graphoptimize_for_inference之后,我在Android app中按照如下方式调用模型进行了预测:

    tensorFlowInferenceInterface = new TensorFlowInferenceInterface();
    tensorFlowInferenceInterface.initializeTensorFlow(assetManager,MODEL_FILE);
    tensorFlowInferenceInterface.fillNodeInt(INPUT_X,INPUT_X_SIZE,input);
    tens
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值