在官方教程中,介绍完torch后就开始对dataset等数据预处理的介绍了。这很好理解,毕竟torch本身是设计来简化神经网络的代码的。但是这也会带来一个问题,我在学习的时候总是找不到自己想要的功能。
一般来说,torch中最常用两个部分:
import torch.nn as nn
import torch.nn.functional as F
因此,后面练个巩固复习记录将分别记录两个库中最常见的函数,以及总结这两个库分别承载力什么功能。
简介
torch.nn中的nn全称为neural network,意思是神经网络,是torch中构建神经网络的模块。在看过一些资料后,我对nn这个模块是这么理解的:这个模块的基础是nn.Module,是实现的层(layer)是一个特殊的类。都是由class Layer(nn.Module)定义,会自动提取可学习的参数。ps:functinal模块中的函数就是一个函数,没有可学习参数。因此,nn就是pytorch用来提供各类预定义好的模型层的库,有什么需要的模型层在这个库里面找就好了。
常见函数
注:笔者是nlp专业的,可能对conv等layer的关注不足
nn.Module
- Sequential — PyTorch 1.13 documentation:串联各layer的容器(容器这个词可能不准)
- ModuleList — PyTorch 1.13 documentation:将layer作为元素存放的列表