背景是之前一直在用Keras做CV的小实验,最近组里要上一个工业检测的项目,需要部署到嵌入式设备上。老板让我自己选框架,我调研了几天反而更懵了。
大家现在主力用PyTorch还是TensorFlow?最近转项目好纠结
全部回复
共 106 条PyTorch吧,既然你要上嵌入式,ONNX导出链更成熟,量化工具也全。我之前从Keras迁过来大概花了两周,主要是习惯那种动态图的写法。TensorFlow Lite虽然也能跑,但版本坑多,尤其和Keras混着用的时候,部署时经常遇到算子不支持。你嵌入式那边用啥芯片?如果是瑞萨或者英伟达的板子,PyTorch生态优势会更明显。
说实话我去年也纠结过同样的问题,最后选了PyTorch,主要因为ONNX导出生态更顺,转TensorRT踩坑少很多。不过嵌入式部署的话TensorFlow Lite的量化工具链确实更成熟,社区案例多,如果你Keras用惯了迁移成本也低。建议别光看框架热度,先查清楚你们目标板子的SDK对哪个框架支持更友好,我吃过亏——模型好写,部署时才发现算子不支持才要命。
嵌入式部署这块PyTorch的生态确实更省心,TorchScript和ONNX导出踩坑少,而且现在很多板子厂商的SDK都优先适配它。我之前做树莓派上的检测模型,用TensorFlow Lite折腾半天量化精度掉得厉害,换PyTorch转ONNX后顺手多了。不过你要是特别依赖Keras那种快速改网络的手感,TF的KerasLayer在部署时反而多一层转换成本,建议直接拿你们要用的板子跑个YOLO小模型对比下两者实测帧率,比看benchmark靠谱。
PyTorch吧,部署这块现在TorchScript和ONNX流转都挺成熟的,而且你之前用Keras的话转过来上手成本也不高。嵌入式那边如果预算吃紧,其实TensorFlow Lite微控制器支持更全一点,但你要是涉及自定义算子就糟心了。话说你们目标板子是什么型号?如果是树莓派或者Jetson系列,PyTorch生态真够用了。
嵌入式部署的话PyTorch生态更顺,转ONNX也省心,TensorFlow Lite对老设备支持反而麻烦点。
PyTorch吧,部署用ONNX转一圈啥都能跑,社区资源也新。TensorFlow折腾起来真有点心累。