1.torch.autograd和Variable
torch.autograd包,可以使模型参数自动计算在优化过程中需要用到的梯度值,降低实现后向传播代码的复杂度。
主要功能:完成神经网络后向传播的链式求导。
from torch.autograd import Variable
#使用 torch.autograd中的Variabe类,对tensor数据类型变量进行封装的操作
x=Variable(torch.randn(batch_n,input_data),requires_grad = False)
#requires_grad参数其赋值类型为布尔型,False,表示该变量在进行自动梯度计算过程中不会保留梯度值
另在迭代代码中使用
loss.backward()
代替了所有的后向传播计算部分。
2.torch.nn
torch.nn 提供了很多实现神经网络中具体功能的类,例如 卷积层torch.nn.Conv,池化层torch.nn.MaxPool,全连接层这类层次的构造方法,防止过拟合的参数归一化方法,Dropout 方法,以及线性或非线性激活函数等。
例如:
1.torch.nn.Sequential :该类是torch.nn 中的一种序列容器,通过在容器中嵌套实现神经网络相关的类,完成神经网络搭建。
包含两种方式:1>直接嵌套。2>以orderdict有序字典方式进行传入。
不同在于2 可以自定义名称
2.torch.nn.Linear 用于定义模型的线性层,完成不同层之间的线性变换。
3.totch.nn中的损失函数
- torch.nn.MSELoss 使用均方误差函数计算损失值
2)torch.nn.L1Loss 使用平均绝对误差函数计算损失值 - torch.nn.CrossEntropyLoss 计算交叉熵
3.torch.optim
torch.optim:自动优化类
包含:SGD.AdaGrad,RMSProp,Adam 等
optmizer=torch.optim.Adam( models.parameters(),lr=learning_rata)