有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

关于从浮点矩阵转换为Java的问题。Lang.使用C#的对象(Xamarin开发环境)

是否可以将多维浮点矩阵转换为Java。Lang.C#中的对象
我使用的神经网络(.tflite格式)被正确加载,并在Java中进行推理。Lang.对象被请求作为输入参数,以下是InputBJ01和InputBJ02:

  1. inputBJ01-->;要分类的输入。在我的例子中,矩阵维数:[1,4000,2]
  2. inputBJ02-->;输出模型。在我的例子中,矩阵维数:[1,4000]

我发现将InputBJ02转换为Java没有问题。Lang.对象,使用以下步骤:

float[][] Input02 = new float[][]{ new float[4000] };  
var InputObj02 = Arrays.FromArray<float[]>(Input02);

但如果我尝试使用相同的技术来获取InputBJ01,方法如下:

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;

共 (1) 个答案

  1. # 1 楼答案

    为了满足您的需求,只需使用一个简单的循环可能会更容易:

            float[][,] Input01 = new float[][,] { new float[4000, 2] };
            List<float[,]> newList = new List<float[,]>();
    
            foreach (float[,] array in Input01)
            {
                    newList.Add(array);
            }