PyTorch背后的设计核心是张量和计算图,张量实现了高性能的数据结构和运算,计算图通过计算梯度以优化网络参数。本文将介绍PyTorch的张量系统(Tensor)和自动微分系统(autograd)。
Tensor,又名张量,读者可能对这个名词似曾相识,它不仅在PyTorch中出现过,而且也是其他深度学习框架(如TensorFlow、MXNet等)中重要的数据结构。从工程角度讲,可以简单地认为Tensor是一个支持高效科学计算的数组。Tensor可以是一个数(标量)、一维数组(向量)、二维数组(如矩阵、黑白图片)或者更高维的数组(如高阶数据、视频等)。Tensor与NumPy的ndarray用法类似,而PyTorch的Tensor支持GPU加速。
本文将系统地讲解Tensor的基本用法,力求面面俱到,但不会涉及每个函数。对于Tensor的其他函数及其用法,读者可在IPython/Notebook中使用函数名加?查看帮助文档,或查阅PyTorch的官方文档。