/** * @brief Invoke text classification model and return result */ public float[] invoke_mode(float[] input) { byte[] in_buffer = new byte[4 * 256]; byte[] out_buffer; float[] output = new float[2]; TensorsInfo in_info; TensorsInfo out_info; TensorsData in_data; TensorsData out_data; string model_path = ResourcePath + "models/text_classification.tflite"; if (!File.Exists(model_path)) { Log.Error(TAG, "Model file is not exist"); return(output); } Buffer.BlockCopy(input, 0, in_buffer, 0, in_buffer.Length); /* Set input & output TensorsInfo */ in_info = new TensorsInfo(); in_info.AddTensorInfo(TensorType.Float32, new int[4] { 256, 1, 1, 1 }); out_info = new TensorsInfo(); out_info.AddTensorInfo(TensorType.Float32, new int[4] { 2, 1, 1, 1 }); /* Create single inference engine */ SingleShot single = new SingleShot(model_path, in_info, out_info); /* Set input data */ in_data = in_info.GetTensorsData(); in_data.SetTensorData(0, in_buffer); /* Single shot invoke */ out_data = single.Invoke(in_data); /* Get output data from TensorsData */ out_buffer = out_data.GetTensorData(0); Buffer.BlockCopy(out_buffer, 0, output, 0, out_buffer.Length); return(output); }
public static bool BasicSingleTest_Success00() { byte[] in_buffer = new byte[3 * 224 * 224 * 1]; byte[] out_buffer; string model_path = ResourcePath + "models/mobilenet_v1_1.0_224_quant.tflite"; TensorsInfo in_info; TensorsInfo out_info; TensorsData in_data; TensorsData out_data; /* Set input & output TensorsInfo */ in_info = new TensorsInfo(); in_info.AddTensorInfo(TensorType.UInt8, new int[4] { 3, 224, 224, 1 }); out_info = new TensorsInfo(); out_info.AddTensorInfo(TensorType.UInt8, new int[4] { 1001, 1, 1, 1 }); /* Create single inference engine */ SingleShot single = new SingleShot(model_path, in_info, out_info); /* Set input data */ in_data = in_info.GetTensorsData(); in_data.SetTensorData(0, in_buffer); /* Single shot invoke */ out_data = single.Invoke(in_data); /* Get output data from TensorsData */ out_buffer = out_data.GetTensorData(0); /* Release Single inference instance */ single.Dispose(); /* clean up */ in_data.Dispose(); out_data.Dispose(); in_info.Dispose(); out_info.Dispose(); return(true); }