You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							51 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							51 lines
						
					
					
						
							1.4 KiB
						
					
					
				| #pragma once
 | |
| 
 | |
| #include <cstdlib>
 | |
| 
 | |
| #include "selfdrive/modeld/runners/runmodel.h"
 | |
| 
 | |
| class ONNXModel : public RunModel {
 | |
| public:
 | |
|   ONNXModel(const char *path, float *output, size_t output_size, int runtime, bool use_extra = false, bool _use_tf8 = false, cl_context context = NULL);
 | |
| 	~ONNXModel();
 | |
|   void addRecurrent(float *state, int state_size);
 | |
|   void addDesire(float *state, int state_size);
 | |
|   void addNavFeatures(float *state, int state_size);
 | |
|   void addDrivingStyle(float *state, int state_size);
 | |
|   void addTrafficConvention(float *state, int state_size);
 | |
|   void addCalib(float *state, int state_size);
 | |
|   void addImage(float *image_buf, int buf_size);
 | |
|   void addExtra(float *image_buf, int buf_size);
 | |
|   void execute();
 | |
| private:
 | |
|   int proc_pid;
 | |
| 
 | |
|   float *output;
 | |
|   size_t output_size;
 | |
| 
 | |
|   float *rnn_input_buf = NULL;
 | |
|   int rnn_state_size;
 | |
|   float *desire_input_buf = NULL;
 | |
|   int desire_state_size;
 | |
|   float *nav_features_input_buf = NULL;
 | |
|   int nav_features_size;
 | |
|   float *driving_style_input_buf = NULL;
 | |
|   int driving_style_size;
 | |
|   float *traffic_convention_input_buf = NULL;
 | |
|   int traffic_convention_size;
 | |
|   float *calib_input_buf = NULL;
 | |
|   int calib_size;
 | |
|   float *image_input_buf = NULL;
 | |
|   int image_buf_size;
 | |
|   bool use_tf8;
 | |
|   float *extra_input_buf = NULL;
 | |
|   int extra_buf_size;
 | |
|   bool use_extra;
 | |
| 
 | |
|   // pipe to communicate to keras subprocess
 | |
|   void pread(float *buf, int size);
 | |
|   void pwrite(float *buf, int size);
 | |
|   int pipein[2];
 | |
|   int pipeout[2];
 | |
| };
 | |
| 
 | |
| 
 |