pytorch快速搭建神经网络_Sequential操作


Posted in Python onJune 17, 2020

之前用Class类来搭建神经网络

class Neuro_net(torch.nn.Module):
  """神经网络"""
  def __init__(self, n_feature, n_hidden_layer, n_output):
    super(Neuro_net, self).__init__()
    self.hidden_layer = torch.nn.Linear(n_feature, n_hidden_layer)
    self.output_layer = torch.nn.Linear(n_hidden_layer, n_output)

  def forward(self, input):
    hidden_out = torch.relu(self.hidden_layer(input))
    out = self.output_layer(hidden_out)
    return out
  
net = Neuro_net(2, 10, 2)
print(net)

class类图结构:

pytorch快速搭建神经网络_Sequential操作

使用torch.nn.Sequential() 快速搭建神经网络

net = torch.nn.Sequential(
  torch.nn.Linear(2, 10),
  torch.nn.ReLU(),
  torch.nn.Linear(10, 2)
)
print(net)

Sequential图结构

pytorch快速搭建神经网络_Sequential操作

总结:

我们可以发现,使用torch.nn.Sequential会自动加入激励函数, 但是 class类net 中, 激励函数实际上是在 forward() 功能中才被调用的

使用class类中的torch.nn.Module,我们可以根据自己的需求改变传播过程

如果你需要快速构建或者不需要过多的过程,直接使用torch.nn.Sequential吧

补充知识:【PyTorch神经网络】使用Moudle和Sequential搭建神经网络

Module:

init中定义每个神经层的神经元个数,和神经元层数;

forward是继承nn.Moudle中函数,来实现前向反馈(加上激励函数)

# -*- coding: utf-8 -*-
# @Time  : 2019/11/5 10:43
# @Author : Chen
# @File  : neural_network_impl.py
# @Software: PyCharm
 
import torch
import torch.nn.functional as F
 
#data
x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)
y = x.pow(2) + 0.2 * torch.rand(x.size())
 
 
#第一种搭建方法:Module
# 其中,init中定义每个神经层的神经元个数,和神经元层数;
# forward是继承nn.Moudle中函数,来实现前向反馈(加上激励函数)
class Net(torch.nn.Module):
  def __init__(self):
    #继承__init__函数
    super(Net, self).__init__()
    #定义每层的形式
    #隐藏层线性输出feature->hidden
    self.hidden = torch.nn.Linear(1, 10)
    #输出层线性输出hidden->output
    self.predict = torch.nn.Linear(10, 1)
 
  #实现所有层的连接关系。正向传播输入值,神经网络分析输出值
  def forward(self, x):
    #x首先在隐藏层经过激励函数的计算
    x = F.relu(self.hidden(x))
    #到输出层给出预测值
    x = self.predict(x)
    return x
 
net = Net()
print(net)
 
print('\n\n')
 
#快速搭建:Sequential
#模板:net2 = torch.nn.Sequential()
 
net2 = torch.nn.Sequential(
  torch.nn.Linear(1, 10),
  torch.nn.ReLU(),
  torch.nn.Linear(10, 1)
)
print(net2)

pytorch快速搭建神经网络_Sequential操作

以上这篇pytorch快速搭建神经网络_Sequential操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用xmlrpc实例讲解
Dec 17 Python
Python设计模式之抽象工厂模式
Aug 25 Python
Python中实现最小二乘法思路及实现代码
Jan 04 Python
linux下python使用sendmail发送邮件
May 22 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
Python使用统计函数绘制简单图形实例代码
May 15 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 Python
python代码区分大小写吗
Jun 17 Python
Python自动化操作实现图例绘制
Jul 09 Python
Python自动发送和收取邮件的方法
Aug 12 Python
PyQt5多线程防卡死和多窗口用法的实现
Sep 15 Python
浅析python 字典嵌套
Sep 29 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 #Python
Keras之fit_generator与train_on_batch用法
Jun 17 #Python
基于Keras的格式化输出Loss实现方式
Jun 17 #Python
Tensorflow之MNIST CNN实现并保存、加载模型
Jun 17 #Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 #Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 #Python
Java如何基于wsimport调用wcf接口
Jun 17 #Python
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
深入理解Node module模块
2018/03/26 Javascript
[57:47]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python使用any判断一个对象是否为空的方法
2014/11/19 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
详解Python正则表达式re模块
2019/03/19 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
Python实现壁纸下载与轮换
2020/10/19 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
python 制作网站小说下载器
2021/02/20 Python
PHP开发的一般流程
2013/08/13 面试题
军训自我鉴定怎么写
2014/02/13 职场文书
公司委托书格式
2014/08/01 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
意向协议书
2015/01/27 职场文书
工资证明范本
2015/06/12 职场文书
Redis实现订单过期删除的方法步骤
2022/06/05 Redis