使用pytorch构建简单的多层神经网络
2020-04-21 20:04
477 查看
无论是多少层 只不过是模型中的设置
1创建符合你结构的数据集
定义量,定义数据
2创建model class 其中包括2个方法 init 定义结构 以及forward定义如何将结构勾稽起来
并实例化model
3开始正式循环
向model传入数据
计算并打印loss(定义loss类型 传入参数)
计算梯度并更新参数(定义optimizer 来清零并更新 使用params来获取每个的tensor之外的grad)
经典3句
结束
下面展示一些
内联代码片。
// An highlighted block import torch import torch.nn as nn # 2创建model class twolayernet(nn.Module): def __init__(self,d_in,h_,d_out): super(twolayernet,self).__init__() self.l1=nn.Linear(d_in,h_) self.l2=nn.Linear(h_,d_out) def forward(self,x): y_pred=self.l2(self.l1(x).clamp(min=0)) return y_pred # model=nn.Sequential( # nn.Linear(din,h), # nn.ReLU(), # nn,Linear(h,dout) # ) N,din,h,dout=64,1000,100,10 # 1创建数据集 输入100 1000 x=torch.randn(N,din) # w1=torch.randn(din,h,requires_grad='true') # w2=torch.randn(h,dout,requires_grad='true') y=torch.randn(N,dout) model=twolayernet(din,h,dout) learning_rate=1e-4 loss_fn=nn.MSELoss(reduction='sum') optim_fn=torch.optim.Adam(model.parameters(),learning_rate) # 3开始循环 for i in range(500): # 3.1数据与model传入 匹配 y_pred=model(x) # 3.2计算loss(定义loss类型 传入参数) loss=loss_fn(y_pred,y) print(i,loss.item()) # 3.3计算梯度并更新参数(定义optimizer 来清零并更新 使用params来获取每个的tensor之外的grad) optim_fn.zero_grad() loss.backward() optim_fn.step()
总结:
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 理解神经网络,从简单的例子开始(2)使用python建立多层神经网络
- 使用python构建简单的神经网络
- 使用Tensorflow + JupyterNotebook构建简单的神经网络
- 使用python实现简单全连接神经网络
- tensorflow构建简单神经网络
- 使用原生的函数构建一个简单的网络请求
- 构建一个简单的神经网络(又名多层感知器)来对MNIST数字数据集进行分类--学习笔记
- 用tensorflow构建神经网络学习简单函数
- 使用Sybmol模块来构建神经网络
- 人工神经网络工具NeuroSolutions使用教程:NeuralExpert构建神经网络
- 机器学习小试(2)使用多层神经网络进行分类实验
- 使用tensorflow实现全连接神经网络的简单示例,含源码
- 深度学习(pytorch)-1.基于简单神经网络的图片自动分类
- 简单python神经网络从原理到搭建框架以及模板使用实例(python识别手写字体)
- 使用Estimator构建卷积神经网络
- pytorch下使用LSTM神经网络写诗实例
- 初次使用NeuralExpert构建神经网络
- PyTorch上搭建简单神经网络实现回归和分类
- Keras(2):使用Keras构建神经网络进行Mnist手写字体分类,并定性分析各种超参数的影响
- 简单神经网络搭建;使用不同的损失函数实验