1. pytorch包介绍
pytorch主要包含以下包,这也是深度学习中经常会使用到的包
包 | 描述 |
---|---|
torch | pytorch最顶级的包,以及tensor库(具体什么是tensor后面会说) |
torch.nn | torch下包含用于搭建神经网络的modules和可用于继承的类的一个子包 |
torch.autograd | torch下包含所有梯度运算的子包 |
torch.nn.functional | 一个函数接口,包含了神经网络用到的损失函数、激活函数、卷积等 |
torch.optim | torch下包含神经网络中用到的标准优化操作,包括SGD、Adam等的子包 |
torch.utils | torch下包含了很多实用工具的子包,如使数据预处理更加容易的data sets和data loaders |
torchvision | 通过这个包可以使用当下常用的数据集、模型和图像处理方式 |
torch和torchvision是独立的两个包,在安装一章中也可以看到它们是分别安装的.
2. pytorch的优势
在深度学习中,最基本的运算是梯度运算,为了完成计算,深度学习用到了Computational graphs. 这些graphs被用来计算梯度,优化神经网络.
在pytorch中这些Computational graphs是动态的,也就是说在创建各种操作时,同时动态生成graphs,这与在进行操作之前就需要完全确定的静态graphs形成对比.
同时pytorch的封装性很好,在搭建我们自己的神经网络时,只需要更多的关注在神经网络的框架本身上,而不需要关注太过底层的东西.