Bonjour à tous,

Je suis en train de travailler sur un réseau de neurones avec comme entrées et sorties des tenseurs de dimensions:

entrées = [1,30,1]
sorties = [1,30]

Le modèle est au format .tflite et j'ai un mal fou à faire l'inférence en C. Je dois redimensionner mon entrée à la dimension d'entrée du réseau (c'est un float input[30]); même chose pour la sortie (float output[30]). Le programme crashe lorsque j'essaie de copier la sortie du réseau. Voici le code que j'ai écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
	 float input[30];
	 float output[30];
 
         // resize input tensor
	 int inputTensorSize = 30;
	 int inputDims[3] = { 1, inputTensorSize, 1 };
 
	 TfLiteInterpreterResizeInputTensor(IA_config0->interpreter_direct, 0, inputDims, 3);
 
	 // re-allocate tensors
	 TfLiteInterpreterAllocateTensors(IA_config0->interpreter_direct);
 
	 // input buffer to input tensor
	 IA_config0->input_tensor_direct = TfLiteInterpreterGetInputTensor(IA_config0->interpreter_direct, 0);
 
	 ///////////////////////////////////////////////////////////////////
 
	 statut = TfLiteTensorCopyFromBuffer(IA_config0->input_tensor_direct, input, inputTensorSize * sizeof(float));
 
	 // Execute inference.
	 statut = TfLiteInterpreterInvoke(IA_config0->interpreter_direct);
 
	 // Extract the output tensor data.
 
	 statut = TfLiteTensorCopyToBuffer(IA_config0->output_tensor_direct, output, TfLiteTensorByteSize(IA_config0->output_tensor_direct));
Est-ce quelqu'un a déjà été confronté à ce genre de problème et aurait une solution?

Merci d'avance,

Mango1