#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);
Как создать эти входные данные?