作为一名AI工程师,掌握一门深度学习框架是必备的生存技能之一。

自 TensorFlow 从 Google 中脱颖而出以来,它在研究和商业领域成为最受欢迎的开源深度学习框架,紧接着 从 Facebook 诞生的 PyTorch 由于社区推动的易用性改进和越来越广泛的用例部署,而迅速赶上TensorFlow。

两个框架在当年一度备受争议,TensorFlow和PyTorch谁更好?

从去年校招开始到现在负责部门的面试,从我手上流走的简历多多少少也有上百封了。

面试了很多候选人,当问他们常用的深度学习框架时,发现他们清一色的选择了:PyTorch。

从各个方面可以看出,经过这些年的发展,PyTorch在学术圈的「垄断」地位基本已经站稳

诚然,比起TensorFlow,大多数研究人员更偏爱PyTorch的API,PyTorch设计更科学,而TensorFlow自推出2.0版本后,与TF 1.x 的API差异实在不小,导致doc的阅读成本和版本适配成本都相当高。

如果是初学者,无脑Pytorch就对了。社区资源多、开源代码多、上手也很简单,各大厂商对Pytorch的支持也多(TensorRT、ONNX)。

其实框架的作用就是我们无需造轮子可以直接使用,并且节省工作量,对于Pytorch来说对研究友好、对训练友好、对白嫖大佬的开源代码也友好,对模型部署也友好,可以节省大把时间去做其他有意义的事情,没有理由不使用Pytorch。

如果是工作了,就看公司在用什么吧,因为公司是面向需求的

在业界,无论算法性能有多好,总归还是要上线的,选择框架的时候便会考虑以下这些问题,是否方便部署到线上,支持多语言,并且有较好的系统稳定性以及有非常多线上应用实例。

TF 1.x系列面世较早,在学术界、工业界都有很深的积淀,工业界由于项目更重,牵一发而动全身,因此目前很多项目仍然停留在TF 1.x(1.1x)上面。

像业界大多数支撑搜广推场景的模型,还是用Tensorflow,TensorFlow适合大规模部署,特别是需要跨平台和嵌入式部署时。

至于延伸到选择哪个的问题:

显而易见,小孩子才做选择,而我们都要学,基本都要会用,这样才能自己选择工具,而不是工具挑选你。

然而,我们通过调研发现,80%的0-3岁互联网人没有系统的学习过Tensorflow、PyTorch方向,缺乏项目实战,处于比较浅层面的对比。

网上解读Tensorflow、PyTorch文章非常多但知识点零散,学习起来抓不住重点。

最近整理一套深度学习框架必备的学习资料,这套资料内容非常详尽全面,课程通过讲解和实战操作,带你从零开始训练网络,做到独立搭建和设计卷积神经网络(包括主流分类和检测网络),并进行神经网络的训练和推理(涉及PyTorch、Tensorflow、Caffe、Mxnet等多个主流框架),通过实战让你掌握各种深度学习开源框架。(资料已经全部整理好)

清华博士导师整理:Tensorflow和Pytorch的笔记(包含经典项目实战)_java

资料内容过多,不一一展开,仅截取框架学习部分目录大家感受下。

深度学习与神经网络

  • 深度学习简介
  • 基本的深度学习架构
  • 神经元
  • 激活函数详解(sigmoid、tanh、relu等)
  • 感性认识隐藏层
  • 如何定义网络层
  • 损失函数

推理和训练

  • 神经网络的推理和训练
  • bp算法详解
  • 归一化
  • Batch Normalization详解
  • 解决过拟合
  • dropout
  • softmax
  • 手推神经网络的训练过程

从零开始训练神经网络

  • 使用python从零开始实现神经网络训练
  • 构建神经网络的经验总结

深度学习开源框架

  • pytorch
  • tensorflow
  • caffe
  • mxnet
  • keras
  • 优化器详解(GD,SGD,RMSprop等

上次已经给大家推荐过一次,但微信有限制每天只能加100个人,很多人反馈没有领到,这次又申请到了100个名额,速度领取,手慢无!

由于工作需要,这份教程我本人也在学习中,虽然已经从事这个行业多年,再看这份教程的时候,仍然能查漏补缺,收获满满,我相信不管是AI入门,还是已经具备了一定的工作经验,这份学习资料,都值得你去认真学习研究。