四、PyTorch里的函数

一、torch.nn.Sequential()函数

此函数的作用是将一系列的运算模块按顺序搭建成一个多层的神经网络。

在下面的代码例子中,运算模块就包括了从输入层到隐含层的线性映射torch.nn.Linear(input_size, hidden_size)、隐含层的非线性sigmoid函数torch.nn,sigmoid(),以及从隐含层到输出层的线性映射torch.nn.Linear(hidden_size, output_size)

#定义神经网络架构,features.shape[1]个输入单元,10个隐含单元,1个输出单元
input_size = features.shape[1]
hidden_size = 10
output_size = 1
batch_size = 128
neu = torch.nn.Sequential(
    torch.nn.Linear(input_size, hidden_size),
    torch.nn.sigmoid(),
    torch.nn.Linear(hidden_size,output_size)

需要注意的是,Sequential()函数里面的层次并不与神经网络的层次严格对应,而是指多步的运算,它与动态计算图中的层次相对应。

二、损失函数torch.nn.MSELoss()

cost = torch.nn.MSELoss()

它是一个计算均方误差的损失函数,是一个函数指针,赋予了变量cost。在实际计算的时候,我们只需要调用cost(x, y)就可以计算出预测向量x目标向量y之间的均方误差。

三、优化器torch.nn.SGD()

optimizer = torch.optim.SGD(neu.parameters(), lr = 0.001)

torch.nn.SGD()调用了pytorch自带的随机梯度下降算法(stochastic gradient descent,SGD)。在初始化optimizer的时候,需要待优化的所有参数,以及执行梯度下降算法的学习率 lr = 0.001。

optimizer.zero_grad() #清零所有参数的梯度值
loss.backward() #反向传播算法
optimizer.step() #将每个参数的梯度和学习率等超参数结合起来,更新模型的参数,从而最小化损失函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值