Apollo 11.0
自动驾驶开放平台
apollo::planning::TrajectoryImitationLibtorchInference类 参考

#include <trajectory_imitation_libtorch_inference.h>

类 apollo::planning::TrajectoryImitationLibtorchInference 继承关系图:
apollo::planning::TrajectoryImitationLibtorchInference 的协作图:

Public 成员函数

 TrajectoryImitationLibtorchInference (const LearningModelInferenceTaskConfig &config)
 Constructor
 
virtual ~TrajectoryImitationLibtorchInference ()=default
 Destructor
 
std::string GetName () override
 Get the name of model inference
 
bool LoadModel () override
 load a learned model
 
bool DoInference (LearningDataFrame *const learning_data_frame) override
 inference a learned model
 
- Public 成员函数 继承自 apollo::planning::ModelInference
 ModelInference (const LearningModelInferenceTaskConfig &config)
 Constructor
 
virtual ~ModelInference ()=default
 Destructor
 

额外继承的成员函数

- Protected 属性 继承自 apollo::planning::ModelInference
LearningModelInferenceTaskConfig config_
 

详细描述

构造及析构函数说明

◆ TrajectoryImitationLibtorchInference()

apollo::planning::TrajectoryImitationLibtorchInference::TrajectoryImitationLibtorchInference ( const LearningModelInferenceTaskConfig &  config)
explicit

Constructor

在文件 trajectory_imitation_libtorch_inference.cc 第 33 行定义.

35 : ModelInference(config), device_(torch::kCPU) {}
ModelInference(const LearningModelInferenceTaskConfig &config)
Constructor

◆ ~TrajectoryImitationLibtorchInference()

virtual apollo::planning::TrajectoryImitationLibtorchInference::~TrajectoryImitationLibtorchInference ( )
virtualdefault

Destructor

成员函数说明

◆ DoInference()

bool apollo::planning::TrajectoryImitationLibtorchInference::DoInference ( LearningDataFrame *const  learning_data_frame)
overridevirtual

inference a learned model

参数
learning_data_frameinput and output intermediate for inference

实现了 apollo::planning::ModelInference.

在文件 trajectory_imitation_libtorch_inference.cc 第 285 行定义.

286 {
287 switch (config_.model_type()) {
289 if (!DoCNNMODELInference(learning_data_frame)) {
290 return false;
291 }
292 break;
293 }
295 if (!DoCNNLSTMMODELInference(learning_data_frame)) {
296 return false;
297 }
298 break;
299 }
300 default: {
301 AERROR << "Configured model type not defined and implemented";
302 break;
303 }
304 }
305 return true;
306}
LearningModelInferenceTaskConfig config_
#define AERROR
Definition log.h:44

◆ GetName()

std::string apollo::planning::TrajectoryImitationLibtorchInference::GetName ( )
inlineoverridevirtual

Get the name of model inference

实现了 apollo::planning::ModelInference.

在文件 trajectory_imitation_libtorch_inference.h 第 50 行定义.

50{ return "TRAJECTORY_IMITATION_INFERENCE"; };

◆ LoadModel()

bool apollo::planning::TrajectoryImitationLibtorchInference::LoadModel ( )
overridevirtual

load a learned model

实现了 apollo::planning::ModelInference.

在文件 trajectory_imitation_libtorch_inference.cc 第 71 行定义.

71 {
72 if (config_.use_cuda() && torch::cuda::is_available()) {
73 ADEBUG << "CUDA is available";
74 device_ = torch::Device(torch::kCUDA);
75 try {
76 model_ = torch::jit::load(config_.gpu_model_file(), device_);
77 } catch (const c10::Error& e) {
78 AERROR << "Failed to load model on to device";
79 return false;
80 }
81 } else {
82 model_ = torch::jit::load(config_.cpu_model_file(), device_);
83 }
84
85 torch::set_num_threads(1);
86 switch (config_.model_type()) {
88 if (!LoadCNNModel()) {
89 return false;
90 }
91 break;
92 }
94 if (!LoadCNNLSTMModel()) {
95 return false;
96 }
97 break;
98 }
99 default: {
100 AERROR << "Configured model type not defined and implemented";
101 break;
102 }
103 }
104 return true;
105}
#define ADEBUG
Definition log.h:41

该类的文档由以下文件生成: