我在 Android 上使用经过训练的 Java TensorFlow 模型。我正在尝试提取中间操作的输出。
我提取的张量的形状为 (150, 150, 256)。
我已声明输出目标为
private float[] hybridValues;
hybridValues = new float[150 * 150 * 256];
然后我使用以下命令获取输出。
inferenceInterface.fetch(OUTPUT_NODE, hybridValues);
这些值很好,但它们存储为一维数组。有没有办法让 inferenceinterface.fetch 返回多维数组?
我尝试将 HybridValue 声明为三维 float 组,但这不起作用,因为 fetch 方法需要一维数组。
最终目标是将我的输出传递给一个 Python 程序,该程序会将值提供给相同形状(150, 150, 256)的张量。
为了比较Python a_output = graph.get_tensor_by_name('a2b_generator/Conv_7/Relu:0')
返回一个 ndarray,其值与目标张量形状相同。
最佳答案
我在桌面上使用带有java的tensorflow(可能有所不同),我所做的就是创建一个具有正确大小的多维数组,然后复制值,例如Tensor.copyTo(Object dst)
关于java - Java中的Tensorflow : inferenceInterface.获取转换为多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51898314/