FullyConnectedBench.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "FullyConnectedBench.h"
  2. #include "Error.h"
  3. #include "arm_nnfunctions.h"
  4. void FullyConnectedBench::test_fully_connected_tflite_s8()
  5. {
  6. int32_t output_mult = 1073741824;
  7. int16_t output_shift = -1;
  8. int32_t filter_offset = 1;
  9. int32_t input_offset = 1;
  10. int32_t output_offset = -1;
  11. for(int i=0; i < this->repeatNb; i++)
  12. {
  13. arm_fully_connected_s8((int8_t*)inp
  14. ,(const int8_t*)weightp
  15. ,input.nbSamples()
  16. ,output.nbSamples()
  17. ,1
  18. ,input_offset
  19. ,filter_offset
  20. ,output_mult
  21. ,output_shift
  22. ,output_offset
  23. ,(const int8_t*)biasp
  24. ,(int8_t*)outp
  25. ,-128
  26. ,127
  27. ,tempp
  28. );
  29. }
  30. }
  31. void FullyConnectedBench::setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
  32. {
  33. std::vector<Testing::param_t>::iterator it = params.begin();
  34. this->repeatNb = *it;
  35. input.reload(FullyConnectedBench::INPUT1_S8_ID,mgr);
  36. bias.reload(FullyConnectedBench::BIAS1_S8_ID,mgr);
  37. weight.reload(FullyConnectedBench::WEIGHT1_S8_ID,mgr);
  38. ref.reload(FullyConnectedBench::REF1_S8_ID,mgr);
  39. output.create(ref.nbSamples(),FullyConnectedBench::OUTPUT_S8_ID,mgr);
  40. temp.create(input.nbSamples(),FullyConnectedBench::TEMP_S16_ID,mgr);
  41. inp=input.ptr();
  42. biasp=bias.ptr();
  43. weightp=weight.ptr();
  44. outp=output.ptr();
  45. refp=ref.ptr();
  46. tempp=temp.ptr();
  47. }
  48. void FullyConnectedBench::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
  49. {
  50. }