Подача тензорбуфера из данных акселерометра и gps для модели TensorFlow Lite в Android studio

#java #android #tensorflow #tensorflow-lite

Вопрос:

Я пытаюсь создать приложение, которое берет данные с датчиков смартфона (акселерометр, скорость с gps). Я уже создал модель TensorFlow Lite и импортировал ее в Android Studio, и был создан приведенный ниже пример кода. Теперь вопрос в том, как ввести значения акселерометра и гироскопа в модель?

Пример кода, созданного Android Studio:

 try {  Model model = Model.newInstance(context);   // Creates inputs for reference.  TensorBuffer inputFeature0 = TensorBuffer.createFixedSize(new int[]{1, 150, 4, 1}, DataType.FLOAT32);  inputFeature0.loadBuffer(byteBuffer);   // Runs model inference and gets result.  Model.Outputs outputs = model.process(inputFeature0);  TensorBuffer outputFeature0 = outputs.getOutputFeature0AsTensorBuffer();   // Releases model resources if no longer used.  model.close(); } catch (IOException e) {  // TODO Handle the exception }  

Как я могу создать этот ByteBuffer? Я попытался создать простой массив массивов с плавающей точкой и загрузить его как массив, но он не работает:

 float[][][][] input = new float[1][150][][];  for(int i=0; ilt;150; i  ){  float [][] frame = new float[4][1];  for(float [] row: frame){  row[0] = (float) 0.0;  }  input[0][i] = frame;  }  inputFeature0.loadArray(input);  

Как создать эти входные данные?