簡體   English   中英

關於使用 C#(Xamarin 開發環境)從浮點矩陣轉換為 Java.Lang.Object 的問題

[英]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:

  1. InputObj01 --> 要分類的輸入。 在我的情況下矩陣維度:[1, 4000, 2]
  2. InputObj02 --> 輸出模型。 在我的情況下矩陣維度:[1, 4000]

我發現使用以下步驟將 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM