Pytorch 神经网络训练代码,pytorch实现逻辑回归

  Pytorch 神经网络训练代码,pytorch实现逻辑回归

  本文主要介绍使用PyTorch进行回归运算的python神经网络学习的实现代码。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010学习PyTorch前言中的重要基础函数1、构造类网(torch.nn.Module)神经网络33602、优化器optimizer 3、损失函数的定义4、训练过程的所有代码。

  

目录

  我发现不仅有很多Keras车型,还有很多PyTorch车型。我最好向Pytorch学习。我也想知道下面这个张量是什么。

  

学习前言

  

PyTorch中的重要基础函数

  PyTorch中神经网络的构造不同于Tensorflow。需要用类来构建(也可以用类似Keras后期的顺序模型来构建)。当然,基础还是用一个类搭建的。该类需要继承PyTorch,torch.nn.Module中的神经网络模型,具体构造方法如下:

  #继承torch.nn.Module模型

  class Net(torch.nn.Module):

  #重载初始化函数(我忘了这是不是叫重载)

  def __init__(self,n_feature,n_hidden,n_output):

  超级(净,自)。__init__()

  #对传入数据应用线性变换:math:y=xA^T b

  #全连接层,公式为y=xa TB

  #在初始化的同时构建两个完全连接的层(即一个隐藏层)

  self . hidden=torch . nn . linear(n _ feature,n_hidden)

  self . predict=torch . nn . linear(n _ hidden,n_output)

  # forward函数用于建立正向转移的流程。

  定义向前(自身,x):

  #隐藏层的输出

  hidden _ layer=functional . relu(self . hidden(x))

  #实际产量

  output_layer=self.predict(隐藏层)

  返回输出层

  这部分构造了一个带隐层的神经网络,隐层神经元的数目为n_hidden。

  上述类建立后,可以通过以下函数建立神经网络:

  net=Net(n_feature=1,n_hidden=10,n_output=1)

  

1、class Net(torch.nn.Module)神经网络的构建:

  Optimizer是用来建立模型的优化器,与tensorflow中的优化器含义相同。PyTorch的优化器位于库中,前缀为torch.optim

  优化程序需要传入网络的参数。

  具体使用方式如下:

  # torch.optim是优化器模块。

  # Adam可以改成其他优化器,比如SGD,RMSprop等。

  optimizer=torch . optim . Adam(net . parameters(),lr=1e-3)

  

2、optimizer优化器

  损失用于定义神经网络训练的损失函数。常用的损失函数有均方误差损失函数(回归)和交叉熵损失函数(分类)。

  具体使用方式如下:

  #均方误差loss loss _ func=torch . nn . ms loss()

  

3、loss损失函数定义

  培训过程分为三个步骤:

  1.使用网络预测结果。

  预测=净值(x)

  2.将预测结果与实际值进行比较,产生损失。

  loss=loss_func(预测,y)

  3.反向传输(这部分有三个步骤)。

  #均方误差损失

  #反向传输步骤

  # 1.初始化渐变

  optimizer.zero_grad()

  # 2.计算梯度

  loss.backward()

  # 3.用优化器优化

  optimizer.step()

  

4、训练过程

  这是一个简单的回归预测模型。

  进口火炬

  来自torch.autograd导入变量

  导入torch.nn.functional作为功能

  将matplotlib.pyplot作为plt导入

  将numpy作为np导入

  # x的形状是(100,1)

  x=torch . from _ numpy(NP . Lin space(-1,1,100)。整形([100,1])。类型(火炬。FloatTensor)

  # y的形状为(100,1)

  y=torch . sin(x)0.2 * torch . rand(x . size())

  class Net(torch.nn.Module):

  def __init__(self,n_feature,n_hidden,n_output):

  超级(净,自)。__init__()

  #对传入数据应用线性变换:math:y=xA^T b

  #全连接层,公式为y=xa TB

  self . hidden=torch . nn . linear(n _ feature,n_hidden)

  self . predict=torch . nn . linear(n _ hidden,n_output)

  定义向前(自身,x):

  #隐藏层的输出

  hidden _ layer=functional . relu(self . hidden(x))

  output_layer=self.predict(隐藏层)

  返回输出层

  #阶级的建立

  net=Net(n_feature=1,n_hidden=10,n_output=1)

  #火炬。使最优化是优化器模块

  优化器=火炬。optim。亚当(网。参数(),lr=1e-3)

  # 均方差失败

  loss _ func=火炬。nn。ms loss()

  对于范围(1000):内的t

  预测=净值(十)

  损耗=损耗函数(预测,y)

  # 反向传递步骤

  # 1、初始化梯度

  optimizer.zero_grad()

  # 2、计算梯度

  loss.backward()

  # 3、进行【计算机】优化程序优化

  optimizer.step()

  如果t 50==0:

  打印(损失是,loss.data.numpy())

  运行结果为:

  损失为0.27913737

  损失为0.2773982

  损失为0.27224126

  …………

  损失为0.0035993527

  损失为0.0035974088

  损失为0.0035967692

  以上就是大蟒神经网络学习利用PyTorch进行回归运算的详细内容,更多关于大蟒神经网络PyTorch回归运算的资料请关注盛行信息技术软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: