eloquentarduino / EloquentTinyML

Eloquent interface to Tensorflow Lite for Microcontrollers
288 stars 57 forks source link

error: use of deleted function 'virtual Eloquent::TinyML::TensorFlow::AllOpsResolver #66

Closed slimoai closed 10 months ago

slimoai commented 11 months ago

Hi everyone, Seeking your help for the following errors :

..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\patches\allopsresolver.h:14:19: error: deleted function 'virtual Eloquent::TinyML::TensorFlow::AllOpsResolver::~AllOpsResolver()' overriding non-deleted function 14 class AllOpsResolver : public tflite::ops::micro::AllOpsResolver { ^~~~~~ In file included from ..\eloquenttinyml\src/eloquent_tinyml/tensorflow.h:30: ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\tensorflow\lite\experimental\micro\kernels\all_ops_resolver.h:23:7: note: overridden function is 'virtual tflite::ops::micro::AllOpsResolver::~AllOpsResolver()' 23 class AllOpsResolver : public MicroMutableOpResolver { ^~~~~~ ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\patches\allopsresolver.h:14:19: note: 'virtual Eloquent::TinyML::TensorFlow::AllOpsResolver::~AllOpsResolver()' is implicitly deleted because the default definition would be ill-formed: 14 class AllOpsResolver : public tflite::ops::micro::AllOpsResolver { ^~~~~~ ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\patches\allopsresolver.h:14:19: error: 'static void tflite::ops::micro::AllOpsResolver::operator delete(void*)' is private within this context In file included from ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\tensorflow\lite\experimental\micro\micro_error_reporter.h:20, from ..\eloquenttinyml\src/eloquent_tinyml/tensorflow.h:28: ..\eloquenttinyml\src/eloquent_tinyml/tensorflow/esp32/tensorflow/lite/experimental/micro/compatibility.h:28:8: note: declared private here 28 void operator delete(void* p) {} ^~~~ ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\tensorflow\lite\experimental\micro\kernels\all_ops_resolver.h:28:3: note: in expansion of macro 'TF_LITE_REMOVE_VIRTUAL_DELETE' 28 TF_LITE_REMOVE_VIRTUAL_DELETE ^~~~~~~~~ In file included from ..\eloquenttinyml\src/eloquent_tinyml/tensorflow.h:34: ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\patches\micromutableopresolver.h:16:19: error: deleted function 'virtual Eloquent::TinyML::TensorFlow::MicroMutableOpResolver::~MicroMutableOpResolver()' overriding non-deleted function 16 class MicroMutableOpResolver : public tflite::MicroMutableOpResolver { ^~~~~~ In file included from ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\tensorflow\lite\experimental\micro\kernels\all_ops_resolver.h:17: ..\eloquenttinyml\src/eloquent_tinyml/tensorflow/esp32/tensorflow/lite/experimental/micro/micro_mutable_op_resolver.h:28:7: note: overridden function is 'virtual tflite::MicroMutableOpResolver::~MicroMutableOpResolver()' 28 class MicroMutableOpResolver : public OpResolver { ^~~~~~ ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\patches\micromutableopresolver.h:16:19: note: 'virtual Eloquent::TinyML::TensorFlow::MicroMutableOpResolver::~MicroMutableOpResolver()' is implicitly deleted because the default definition would be ill-formed: 16 class MicroMutableOpResolver : public tflite::MicroMutableOpResolver { ^~~~~~ ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\esp32\patches\micromutableopresolver.h:16:19: error: 'static void tflite::MicroMutableOpResolver::operator delete(void*)' is private within this context ..\eloquenttinyml\src/eloquent_tinyml/tensorflow/esp32/tensorflow/lite/experimental/micro/compatibility.h:28:8: note: declared private here 28 void operator delete(void* p) {} ^~~~ ..\eloquenttinyml\src/eloquent_tinyml/tensorflow/esp32/tensorflow/lite/experimental/micro/micro_mutable_op_resolver.h:42:3: note: in expansion of macro 'TF_LITE_REMOVE_VIRTUAL_DELETE' 42 TF_LITE_REMOVE_VIRTUAL_DELETE ^~~~~~~~~ In file included from ..\eloquenttinyml\src/eloquent_tinyml/tensorflow.h:39: ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\allopstensorflow.h: In instantiation of 'Eloquent::TinyML::TensorFlow::AbstractTensorFlow<OpResolver, numInputs, numOutputs, tensorArenaSize>::~AbstractTensorFlow() [with OpResolver = Eloquent::TinyML::TensorFlow::AllOpsResolver; short unsigned int numInputs = 128; short unsigned int numOutputs = 1; long unsigned int tensorArenaSize = 49152]': ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\allopstensorflow.h:17:19: required from here ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\allopstensorflow.h:17:19: error: use of deleted function 'virtual Eloquent::TinyML::TensorFlow::AllOpsResolver::~AllOpsResolver()' 17 class AllOpsTensorFlow ^~~~ ..\NNmodel.h: In constructor 'TensorFlowPorter<49152>::TensorFlowPorter()': ..\NNmodel.h:30:7: note: synthesized method 'Eloquent::TinyML::TensorFlow::AllOpsTensorFlow<128, 1, 49152>::AllOpsTensorFlow()' first required here 30 class TensorFlowPorter { ^~~~ ..\NNmodel.h: At global scope: ..\NNmodel.h:87:30: note: synthesized method 'TensorFlowPorter<49152>::TensorFlowPorter()' first required here 87 TensorFlowPorter NNmodel; ^~~ ..\NNMODEL_FINAL.ino: In function 'void setup()': ..\NNMODEL_FINAL.ino:367:12: error: cannot convert 'TensorFlowPorter<49152>' to 'const unsigned char*' 367 tf.begin(NNmodel); ^~~
TensorFlowPorter<49152>

In file included from ..\eloquenttinyml\src/eloquent_tinyml/tensorflow.h:38: ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\abstracttensorflow.h:57:49: note: initializing argument 1 of 'bool Eloquent::TinyML::TensorFlow::AbstractTensorFlow<OpResolver, numInputs, numOutputs, tensorArenaSize>::begin(const unsigned char) [with OpResolver = Eloquent::TinyML::TensorFlow::AllOpsResolver; short unsigned int numInputs = 128; short unsigned int numOutputs = 1; long unsigned int tensorArenaSize = 49152]' 57 | bool begin(const unsigned char modelData) { | ~~~~~^~~~~ ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\abstracttensorflow.h: In instantiation of 'Eloquent::TinyML::TensorFlow::AbstractTensorFlow<OpResolver, numInputs, numOutputs, tensorArenaSize>::AbstractTensorFlow() [with OpResolver = Eloquent::TinyML::TensorFlow::AllOpsResolver; short unsigned int numInputs = 128; short unsigned int numOutputs = 1; long unsigned int tensorArenaSize = 49152]': ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\allopstensorflow.h:17:19: required from here ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\abstracttensorflow.h:40:50: error: use of deleted function 'virtual Eloquent::TinyML::TensorFlow::AllOpsResolver::~AllOpsResolver()' 40 | shouldRescaleOutput(false) { | ^ ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\abstracttensorflow.h: In instantiation of 'Eloquent::TinyML::TensorFlow::AbstractTensorFlow<OpResolver, numInputs, numOutputs, tensorArenaSize>::~AbstractTensorFlow() [with OpResolver = Eloquent::TinyML::TensorFlow::AllOpsResolver; short unsigned int numInputs = 128; short unsigned int numOutputs = 1; long unsigned int tensorArenaSize = 49152]': ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\allopstensorflow.h:17:19: required from here ..\eloquenttinyml\src\eloquent_tinyml\tensorflow\common\abstracttensorflow.h:49:17: error: use of deleted function 'virtual Eloquent::TinyML::TensorFlow::AllOpsResolver::~AllOpsResolver()' 49 | } | ^

exit status 1

Compilation error: cannot convert 'TensorFlowPorter<49152>' to 'const unsigned char*'

slimoai commented 11 months ago

Solution found in case anyone faces the same issue: I re-installed all Arduino IDE and re-installed the ESP32 package.

Cheers.