gpt4 book ai didi

android - Android 上的 tensorflow 错误

转载 作者:行者123 更新时间:2023-11-30 09:49:43 25 4
gpt4 key购买 nike

我正在学习 Tensorflow,并按照教程制作了一个自定义模型以在 Android 应用程序中运行它,但我遇到了问题。我有以下代码:

    public void testModel(Context ctx) {
String model_file = "file:///android_asset/model_graph.pb";
int[] result = new int[2];
float[] input = new float[]{0.0F, 1.0F, 0.0F, 1.0F, 1.0F, 0.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F, 1.0F, 1.0F, 0.0F, 0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.0F, 0.0F, 0.0F, 1.0F, 0.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F, 1.0F, 1.0F, 0.0F, 0.0F, 1.0F, 0.0F, 0.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F, 1.0F, 1.0F, 0.0F, 1.0F, 0.0F, 0.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F, 1.0F, 0.0F};
TensorFlowInferenceInterface inferenceInterface;
inferenceInterface = new TensorFlowInferenceInterface(ctx.getAssets(), model_file);
inferenceInterface.feed("input", input, 68);
inferenceInterface.run(new String[]{"output"});
inferenceInterface.fetch("output", result);
Log.v(TAG, Arrays.toString(result));
}

当应用尝试运行 inferenceInterface.run(new String[]{"output"}) 方法时,我收到错误:

java.lang.IllegalArgumentException: In[0] is not a matrix
[[Node: MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_input_0_0, W1)]]

我不认为我创建的模型有问题,因为我能够在 Python 代码中使用它并取得积极的结果。

最佳答案

从错误消息(In[0] 不是矩阵)来看,您的模型似乎要求输入是矩阵(即二维张量),而您正在输入具有 68 个元素的一维张量(向量)。

特别是 TensorFlowInferenceInterface.feeddims 参数该行似乎不正确:

inferenceInterface.feed("input", input, 68);

相反,它应该是这样的:

inferenceInterface.feed("input", input, 68, 1);

如果您的模型需要 68x1 矩阵(如果需要 34x2 矩阵,则为 34, 2;如果需要 17x4 矩阵,则为 17, 4 等)

希望有帮助。

关于android - Android 上的 tensorflow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47278300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com