整体来讲模型的推理有五种形式
- 有模型文件使用tensorflow来调用
- 有模型文件使用tensorrt来调用
- 有模型文件使用keras来调用
- 有模型文件使用lightgbm来调用
- 没有模型文件直接使用keras_layer来调用
keras_layer
keras_model需要用到的结构
model
有模型文件使用keras来调用
有模型文件使用lightgbm来调用
没有模型文件直接使用keras_layer来调用
plugin
和evaluate相连
tensorrt_model
用来tensorrt推理
有模型文件使用tensorflow来调用
如果是用gpu的,tensorrt会直接调用pnc_cache_data中的trt.bin文件,这些文件是通过ONNX形式生成的二进制文件
如果使用cpu的,直接用tensorflow调用.pb文件(protobuf的格式)
/output/parameters里面的参数文件,有.bin(用于keras解析),有.pb(tensorflow直接用),有.onnx(用于tensorrt生成.bin),有.txt(只用于cutins_model.cpp,lightgbm)
/output/include里面都是.pb.h文件,都是一些结构
模型中具体提取了哪些特征可以直接从on_line的代码中看出来
semantic_map需要使用multi modal fully cnn plugin提取feature, 生成是在obstacles_container.cpp中,把DEBUG dumper下的内容打开,可以将semantic map通过.png显示出来, multi_modal需要semantic_map的feature.
关于制作数据集:主要是数据格式的转换以及数据清洗(并不是所有的数据都可以用,例如一些id跳变的case,需要对这些bad data进行清洗),应该不是手动标注的,需要利用主线的平台,具体问陈忠涛
了解模型结构:看论文,使用tensorflow解析.pb文件
KERAS: 由纯python编写的基于theano/tensorflow的深度学习框架,底层库使用Theano或TensorFlow(也可以算是一种框架)
ONNX:开放神经网络交换格式,是一个用于表示深度学习模型的标准,可使模型在不用框架之间进行转移
LightGBM: 是一种深度学习框架