我正在使用TensorflowSharp在Android手机上使用神经网络运行评估。我正在使用Unity构建项目。
我正在使用此处要求下列出的 tensorflowsharp 统一插件:https ://github.com/Unity-Technologies/ml-agents/blob/master/docs/Using-TensorFlow-Sharp-in-Unity.md 。
一切正常,但是提取结果非常慢。
我正在运行的网络是一个自动编码器,输出是一个尺寸为 128x128x16 的图像(是的,有很多输出通道)。
评估在约 0.2 秒内完成,这是可以接受的。但是,当我需要使用results[0].GetValue()
它提取结果数据时非常慢。
这是我运行神经网络的代码
var runner = session.GetRunner();
runner.AddInput(graph[INPUT_NAME][0], tensor).Fetch(graph[OUTPUT_NAME][0]);
var results = runner.Run();
float[,,,] heatmaps = results[0].GetValue() as float[,,,]; // <- this is SLOW
问题: 我将结果转换为浮点数的最后一行需要大约 1.2 秒。
将结果数据读入浮点数组真的是网络实际评估时间的 5 倍以上吗?
是否有另一种方法来提取结果值?