pytorch中搭建神经网络常用的包: torch.autograd torch.nn torch.optim

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中的损失函数

  1. torch.nn.MSELoss 使用均方误差函数计算损失值
    2)torch.nn.L1Loss 使用平均绝对误差函数计算损失值
  2. torch.nn.CrossEntropyLoss 计算交叉熵

3.torch.optim

torch.optim:自动优化类
包含:SGD.AdaGrad,RMSProp,Adam 等

optmizer=torch.optim.Adam( models.parameters(),lr=learning_rata)
发布了9 篇原创文章 · 获赞 0 · 访问量 1333

猜你喜欢

转载自blog.csdn.net/kaxiaokui/article/details/104331776