Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于tensorflow lite的Arduino 33传感器LSTM神经网络_Arduino_Lstm_Tensorflow Lite - Fatal编程技术网

基于tensorflow lite的Arduino 33传感器LSTM神经网络

基于tensorflow lite的Arduino 33传感器LSTM神经网络,arduino,lstm,tensorflow-lite,Arduino,Lstm,Tensorflow Lite,我已经训练了我的LSTM网络,并将其部署在Arduino上,但我的问题是,正如您所知,LSTM网络的输入如下(时间序列数据的窗口长度),(特征)在我的例子中,256窗口长度和6轴IMU数据,这意味着2D输入,但是我看到的所有示例仅为1D输入 下面是用于分配模型输入的Arduino代码 输入->数据.f[0]=aX 当试图修改代码以适应我的输入维度时 (256,6)像这样 输入->数据.f[0][0]=aX 我犯了这个错误 fall_检测:142:44:错误:数组下标的类型“float[int]”

我已经训练了我的LSTM网络,并将其部署在Arduino上,但我的问题是,正如您所知,LSTM网络的输入如下(时间序列数据的窗口长度),(特征)在我的例子中,256窗口长度和6轴IMU数据,这意味着2D输入,但是我看到的所有示例仅为1D输入

下面是用于分配模型输入的Arduino代码

输入->数据.f[0]=aX

当试图修改代码以适应我的输入维度时 (256,6)像这样 输入->数据.f[0][0]=aX

我犯了这个错误 fall_检测:142:44:错误:数组下标的类型“float[int]”无效
tflInputTensor->data.f[samplesRead][5]=(gZ+2000.0)/4000.0

通过深入TF Lite tensor类型的内部结构,您似乎正在“手动”设置tensor输入数据。我建议在这里使用API:

特别是此处的代码片段:

float* input = interpreter->typed_input_tensor<float>(0);
// Fill `input`.
float*input=解释器->类型化输入张量(0);
//填写“输入”。
为您提供正确的指针。然后,您可以为实际的数据结构强制转换指针。大概是这样的:

input = reinterpret_cast<float *>(aX);
input=reinterpret\u cast(aX);

我看到2D和1D问题可能会产生混淆,但只要输入张量的形状正确就可以了。如果它具有形状,这意味着1D浮点值序列将是“a0、a1、a2、a3、a4、a5、b0、b1,…”,其中“a”值是第一行的所有六个值,“b”值是下一行的所有六个值,依此类推。多维内存布局的标准C约定就是这样工作的。除非您的
aX
对象有什么不寻常的地方,否则它应该没问题。如果
aX
不是以这种方式布置的,您应该复制数据,使其位于此布局中。

是否可能是您将samplesRead定义为浮点,而它本应是int?即使我将int值替换samplesRead,也会出现相同的错误