genNN.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* ----------------------------------------------------------------------
  2. * Project: Tiny Training Engine, MCUNetV3
  3. * Title: genNN.h
  4. *
  5. * Reference papers:
  6. * - MCUNet: Tiny Deep Learning on IoT Device, NeurIPS 2020
  7. * - MCUNetV2: Memory-Efficient Patch-based Inference for Tiny Deep Learning, NeurIPS 2021
  8. * - MCUNetV3: On-Device Training Under 256KB Memory, NeurIPS 2022
  9. * Contact authors:
  10. * - Wei-Chen Wang, wweichen@mit.edu
  11. * - Wei-Ming Chen, wmchen@mit.edu
  12. * - Ji Lin, jilin@mit.edu
  13. * - Ligeng Zhu, ligeng@mit.edu
  14. * - Song Han, songhan@mit.edu
  15. * - Chuang Gan, ganchuang@csail.mit.edu
  16. *
  17. * Target ISA: ARMv7E-M
  18. * -------------------------------------------------------------------- */
  19. #ifndef INC_GENNN_H_
  20. #define INC_GENNN_H_
  21. #include <stdint.h>
  22. #include "yoloOutput.h"
  23. signed char* getInput();
  24. signed char* getOutput();
  25. float* getOutput_fp();
  26. int32_t* getOutput_int32();
  27. static float lr __attribute__((unused)) = 0.0008; // To suppress warning
  28. static float blr __attribute__((unused)) = 0.0004; // To suppress warning
  29. void setupBuffer();
  30. void invoke(float* labels);
  31. void invoke_inf();
  32. void getResult(uint8_t* P, uint8_t* NP);
  33. int* getKbuffer();
  34. void end2endinference();
  35. void det_post_procesing(int* box_cnt, det_box** ret_box, float threshold);
  36. #endif /* INC_GENNN_H_ */