最近想入门深度学习,本来打算直接学PyTorch,但看到很多公司招聘要求TensorFlow,又犹豫了。自己跟着教程跑过几个demo,PyTorch的调试确实直观,但一到部署就懵了,ONNX转换各种报错。TensorFlow 2.x的Keras接口也挺简洁,但版本兼容问题搞到头大。想问问大家实际工作中到底用哪个多?如果目标是明年找算法岗,现在应该主攻哪个框架?还是说两个都得会一点?求过来人指点。
PyTorch和TensorFlow学哪个?感觉教程看越多越迷茫了
全部回复
共 9 条说个实在的,你要是明年找算法岗,现在纠结这个纯粹是浪费时间。我面过不少人,简历上写精通TF结果连动态图静态图都分不清的太多了。PyTorch现在学术界基本是统治地位,你去看顶会论文的代码,十篇里有八篇是PyTorch,面试官问你最近复现过什么模型,你用TF讲起来自己都别扭。TensorFlow在企业里确实存量多,但很多是历史项目,新起的团队尤其是做大模型相关的,PyTorch占绝对优势。部署那块ONNX报错太正常了,跟框架关系不大,是你对模型导出时的动态轴、算子支持没吃透,换个框架照样踩坑。我的建议是主攻PyTorch,把训练和调试链路跑熟,然后花两周了解一下TF的Keras和SavedModel格式就行,面试问到能说清楚区别就够了。两个都学一点这种话听着稳妥,实际上容易两边都不深,面试官一追问就露馅。
说实话这个问题年年都有人问,我当年也纠结过一模一样的事。我的真实体验是,PyTorch现在是学术和大部分算法岗的主流,尤其你要是投研究型或者大模型相关的岗位,基本清一色PyTorch,面试也大多让你用torch写。TensorFlow在工业部署和一些传统大厂里存量还很多,但新项目真的越来越少了,招聘写TF很多时候是历史遗留,不一定真让你天天写。部署那块你遇到的ONNX报错太正常了,跟框架关系没那么大,更多是算子支持和动态shape的坑,换成TF你也躲不掉。我的建议是主攻PyTorch,把训练、调试、分布式这些吃透,TF花几天看看Keras能读懂别人代码就行,不用硬啃。真要面试前突击一下TF的Serving和TFLite概念足够了,别为了“都学一点”把两边都学成半吊子。
现在公司里PyTorch确实越来越主流了,尤其做研究和模型开发这块,TensorFlow更多是老项目和部署端在用。你ONNX报错大概率是动态图转静态图时shape或者自定义op的问题,建议先查算子支持列表。如果目标是明年找算法岗,主攻PyTorch比较稳,但简历上最好也写点TF经验,面试官有时候会问部署相关的东西。别贪多,先挑一个把训练和推理流程跑通再说。
说实话现在招聘要求写TensorFlow的,进去大概率也是PyTorch干活,很多JD就是抄来抄去没更新。我建议主攻PyTorch,部署那块踩几个坑就熟了,ONNX报错基本都是op不支持或者动态shape没写对,网上方案挺多的。TensorFlow 2.x有空扫一眼Keras就行,不用死磕,面试问到能聊两句足够。
先主攻PyTorch,找工作时再补TensorFlow也不迟,部署的坑两边都躲不掉。
我去年找工作的时候也纠结过这个,后来发现面试基本都问PyTorch,实际组里也大多用PyTorch做研究迭代。TensorFlow在工业部署确实还有些存量,但新项目越来越少见了。建议主攻PyTorch,把训练和调试搞熟,部署那块可以顺带了解下TorchScript或者ONNX,不用一开始就死磕。真遇到要求TF的岗位,Keras上手很快的,别被招聘JD吓住。
先主攻PyTorch,面试能讲清项目比会几个框架重要,TensorFlow入职再补也来得及。
学到了,感谢分享!
这个思路不错,收藏了。