从这里开始你的 DL 与 Pytorch 学习之旅!
欢迎来到深度学习!
什么是深度学习?
深度学习(Deep Learning)是一门研究如何让计算机系统通过学习和模仿人类的学习过程来解决问题的科学。它是一类人工智能技术,它利用大量的训练数据,通过多层次的神经网络模型,自动学习从数据中提取的特征,并利用这些特征来解决问题。深度学习的主要特点是:
- 高度非线性:深度学习模型可以学习到非常复杂的非线性关系。
- 高度非凸优化:深度学习模型可以利用非凸优化算法,如梯度下降、随机梯度下降、动量法、Adam 等,来优化模型参数,从而解决复杂的优化问题。
- 高度并行化:深度学习模型可以利用并行化技术,如 GPU、多线程、分布式计算等,来提高运算速度。
- 高度可扩展性:深度学习模型可以利用模块化设计,来方便地扩展到新的任务和数据。
本文档涉及的部分
在文档基于动手学深度学习 v2 - 李沐,算作是笔者的学习笔记,因此正篇文档将按照课程的架构进行同步。
主要内容包括:
- 深度学习基础:线性神经网络、多层感知机
- 卷积神经网络:LeNet、AlexNet、VGG、Inception、ResNet
- 循环神经网络:RNN、GRU、LSTM、seq2seq
- 注意力机制:Attention、Transformer
- 优化算法:SGD、Momentum、Adam
- 高性能计算:并行、多 GPU、分布式
- 计算机视觉:目标检测、语义分割
- 自然语言处理:词嵌入、BERT
深度学习是一个宽度与广度都非常大的领域,本文档只会涉及到一些常用的模型和算法,并不会涉及到所有内容。
Pytorch 是什么?
Pytorch 是一款基于 Python 的开源深度学习框架,它提供了高效的计算性能,并支持动态计算图和自动求导。Pytorch 具有以下主要特性:
- 灵活的计算图:Pytorch 提供了灵活的计算图,可以方便地构建复杂的神经网络模型。
- 自动求导:Pytorch 利用自动求导机制,可以自动计算梯度,并利用梯度下降算法来优化模型参数。
- 高效的计算性能:Pytorch 利用 GPU 加速计算,可以实现高效的并行计算。
- 易用性:Pytorch 提供了易用的 API,可以快速构建、训练和部署神经网络模型。
为什么不是 TenserFlow?
TenserFlow 是一款基于 C++ 的开源深度学习框架,由谷歌开发,它提供了高效的计算性能,并支持动态计算图和自动求导。
- 易用性:TensorFlow 是一个庞大的框架,它提供了丰富的 API,可以快速构建、训练和部署神经网络模型。但是,它也有一些缺点,比如:
- 学习曲线陡峭:TensorFlow 的 API 学习曲线相对较陡峭,需要一定的深度学习基础才能上手。
- 性能不足:TensorFlow 的计算性能不足,无法满足实时需求。
- 社区活跃度不高:TensorFlow 的社区活跃度不高,导致一些问题无法得到及时解答。
- 社区支持:TensorFlow 的社区支持度较低,导致一些问题无法得到及时解答。
- 性能:TensorFlow 的计算性能较低,无法满足实时需求。
综上所述,Pytorch 是一个更加易用、更加高效、更加社区活跃的深度学习框架。
在国内高校,pytorch 的使用频率远高于 tenserflow。
开始学习!
上手实践永远是最好的学习方式,从下一节开始,我们将从安装到实践,一步步学习 pytorch 的基础知识。