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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。