机器学习:ONNX、TensorRT
ONNX
现在市面上的多种框架
- TensorFlow:1.0 和 2.0 差别比较大,社区比较分裂(自己设计模型),不容易用
- Pytorch:研究型,基于 Python,自动求导数,支持动态图,由于高封装导致 function 不灵活
- Caffe2:现在用的少
研究多用 Pytorch,工程多用 Tensorflow
Open Neural Network Exchange(ONNX,开放神经网络交换),是一种针对机器学习所设计的开放式的文件格式,可使模型在不同框架(比如 Tensorflow, Pytorch, Caffe2)之间进行转移
缺点
- 为了适配多个平台和硬件,设计的比较复杂,各个平台和硬件,为了适配 ONNX 也变复杂
- 新的算法、函数等,实现的比较慢
- 有些用的多的平台比如 PyTorch 可能不是很积极
ONNX 是开源的
TensorRT
C++ 库,用于加速 NVIDIA 的 GPU
支持 TensorFlow,Pytorch,Caffe2 等框架训练出的神经网络,可以优化网络计算
优化操作比如
- 融合卷积、偏差和ReLU操作,把这几个操作变成一个操作
- 又比如聚合相似的参数和相同的源张量的操作
- 又比如合并连接层
局限于 GPU

浙公网安备 33010602011771号