#ifndef SNPEMODEL_H #define SNPEMODEL_H #include #include #include #include #include #include #include #include #include #include "runmodel.h" class SNPEModel : public RunModel { public: SNPEModel(const char *path, float *output, size_t output_size); ~SNPEModel() { if (model_data) free(model_data); } void addRecurrent(float *state, int state_size); void addDesire(float *state, int state_size); void execute(float *net_input_buf); private: uint8_t *model_data = NULL; // snpe model stuff std::unique_ptr snpe; // snpe input stuff zdl::DlSystem::UserBufferMap inputMap; std::unique_ptr inputBuffer; // snpe output stuff zdl::DlSystem::UserBufferMap outputMap; std::unique_ptr outputBuffer; float *output; // recurrent and desire std::unique_ptr addExtra(float *state, int state_size, int idx); std::unique_ptr recurrentBuffer; std::unique_ptr desireBuffer; }; #endif