Deep Learning in PyTorch

Deep Learning in PyTorch

该书的读书笔记,想从此系统的学习DL,尤其是NLP相关。

1. Introducing DL and PyTorch library

The deep learning revolution

即使到2000年代末,ML领域仍然很依赖于特征工程(feature engineering)。特征用于将输入数据转换为数值,以用于下游算法。特征工程的目标是接受原始数据,得到其表示(representation)

DL则将特征寻找过程自动化了。虽然,DL中仍需要特征工程,它的重点不再是精心构建特征,而是通过对数学实体的操作”发现“这些特征。通常情况下,这些自动发现的表示优于手工构建的。

1.3.2 Immediate versus deferred execution

DL库们的一个关键区别是立即执行与延迟执行。PyTorch的易用性很大程度上来自于它的立即执行的实现方式。

PyTorch默认情况下使用立即执行(eager mode)。

NN的基础组块是neuron,大量neuron连接在一起构成网络。之前TF默认使用静态图,而PyTorch使用动态图,之后两者逐渐同时支持两种模式。

1.4 PyTorch 的组件

其核心是多维数组——tensor,以及对tensor的诸多操作,这些都在torch 模块中。

创建NN的模块在 torch.nn 中,如全连接层,卷积层,激活函数,损失函数之类。

要训练模型,我们还需要:数据源管理,optimizer。加载与处理数据的工具在 torch.util.data,两个主要的类是 DatasetDataLoader。optimizer位于 torch.optim 模块中。

2. It starts with a tensor

在很高的层次上,DL可以理解为将一种输入转换为另一种形式的输出。

转换过程的第一步,需要将输入表示为浮点数。之后的