首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TFLite:微可变操作解析器未命名类型

TFLite:微可变操作解析器未命名类型
EN

Stack Overflow用户
提问于 2021-02-21 15:07:18
回答 1查看 362关注 0票数 0

我正在尝试使用MicroMutableOpsResolver类编译一个基于TFLite的Arduino草图(只包含减少内存使用所需的操作)。

尽管在TF lite示例中可以看到类似用法- https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/micro/examples/micro_speech/micro_speech_test.cc

但是继续点击下面的编译错误。

代码语言:javascript
复制
IMU_Classifier_TinyML:22:1: error: 'micro_op_resolver' does not name a type
 micro_op_resolver.AddFullyConnected();
 ^~~~~~~~~~~~~~~~~
IMU_Classifier_TinyML:23:1: error: 'micro_op_resolver' does not name a type
 micro_op_resolver.AddSoftmax();
 ^~~~~~~~~~~~~~~~~
IMU_Classifier_TinyML:24:1: error: 'micro_op_resolver' does not name a type
 micro_op_resolver.AddRelu();
 ^~~~~~~~~~~~~~~~~
Using library Arduino_LSM9DS1 at version 1.1.0 in folder: /home/balaji/Arduino/libraries/Arduino_LSM9DS1 
Using library Wire in folder: /home/balaji/.arduino15/packages/arduino/hardware/mbed/1.3.2/libraries/Wire (legacy)
Using library Arduino_TensorFlowLite at version 2.4.0-ALPHA in folder: /home/balaji/Arduino/libraries/Arduino_TensorFlowLite 
exit status 1
'micro_op_resolver' does not name a type

代码片段如下所示:

代码语言:javascript
复制
#include <Arduino_LSM9DS1.h>
#include <TensorFlowLite.h>
#include <tensorflow/lite/micro/micro_mutable_op_resolver.h>
#include <tensorflow/lite/micro/kernels/micro_ops.h>
#include <tensorflow/lite/micro/micro_error_reporter.h>
#include <tensorflow/lite/micro/micro_interpreter.h>
#include <tensorflow/lite/schema/schema_generated.h>
#include <tensorflow/lite/version.h>

// Include the TFlite converted model header file
#include "model.h"

const float accelThreshold = 2.5;
const int numOfSamples = 119; // acceleration sample-rate

int samplesRead = numOfSamples;

tflite::MicroErrorReporter tfLiteErrorReporter;

/*Import only the required ops to reduce the memory usage*/
static tflite::MicroMutableOpResolver<3> micro_op_resolver;
micro_op_resolver.AddFullyConnected();
micro_op_resolver.AddSoftmax();
micro_op_resolver.AddRelu();

我是否遗漏了任何依赖项,或者这可能是由于TF lite版本不匹配?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-22 05:03:47

至少像micro_op_resolver.AddFullyConnected();这样的函数调用必须放在函数体中。下面这样的代码应该会被编译:

代码语言:javascript
复制
#include <Arduino_LSM9DS1.h>
#include <TensorFlowLite.h>
#include <tensorflow/lite/micro/micro_mutable_op_resolver.h>
#include <tensorflow/lite/micro/kernels/micro_ops.h>
#include <tensorflow/lite/micro/micro_error_reporter.h>
#include <tensorflow/lite/micro/micro_interpreter.h>
#include <tensorflow/lite/schema/schema_generated.h>
#include <tensorflow/lite/version.h>

// Include the TFlite converted model header file
#include "model.h"

const float accelThreshold = 2.5;
const int numOfSamples = 119; // acceleration sample-rate

int samplesRead = numOfSamples;

tflite::MicroErrorReporter tfLiteErrorReporter;

/*Import only the required ops to reduce the memory usage*/
static tflite::MicroMutableOpResolver<3> micro_op_resolver;

void setup() {
  micro_op_resolver.AddFullyConnected();
  micro_op_resolver.AddSoftmax();
  micro_op_resolver.AddRelu();
}

void loop() {
  // put your main code here, to run repeatedly:

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66299949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档