[英]Issue regarding the cast from a float matrix to a Java.Lang.Object using C# (Xamarin development environment)
是否可以在 C# 中将多维浮点矩阵转换为 Java.Lang.Object?
我使用的神经网络(.tflite 格式)已正确加载,为了进行推理,请求两个 Java.Lang.Object 作为输入参数,以下称为 InputObj01 和 InputObj02:
我发现使用以下步骤将 InputObj02 转换为 Java.Lang.Object 没有问题:
float[][] Input02 = new float[][]{ new float[4000] };
var InputObj02 = Arrays.FromArray<float[]>(Input02);
但是,如果我尝试使用相同的技术来获取 InputObj01,请按以下方式:
float[][,] Input01 = new float[][,]{ new float[4000, 2] };
var InputObj01 = Arrays.FromArray<float[,]>(Input01)
抛出以下异常:
**System.InvalidCastException:** 'Specified cast is not valid.'
使用指令:
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
using Android.Widget;
using System.IO;
using Android.Content.Res;
using Java.IO;
using Java.Nio.Channels;
using Java.Nio;
using Xamarin.TensorFlow.Lite;
using Java.Util;
根据您的需要,使用简单的循环可能更容易:
float[][,] Input01 = new float[][,] { new float[4000, 2] };
List<float[,]> newList = new List<float[,]>();
foreach (float[,] array in Input01)
{
newList.Add(array);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.