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抓取网页正文的源码
Jun 11 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
Python 3.8中实现functools.cached_property功能
May 29 Python
python中property和setter装饰器用法
Dec 19 Python
python中有关时间日期格式转换问题
Dec 25 Python
Windows下实现将Pascal VOC转化为TFRecords
Feb 17 Python
PyTorch-GPU加速实例
Jun 23 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
Python 键盘事件详解
Nov 11 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
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
javaScript复制功能调用实现方案
2012/12/13 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
python 实现归并排序算法
2012/06/05 Python
python学习手册中的python多态示例代码
2014/01/21 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
python从入门到精通(DAY 3)
2015/12/20 Python
python如何查看系统网络流量的信息
2016/09/12 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
Python切片操作实例分析
2018/03/16 Python
浅谈django orm 优化
2018/08/18 Python
Django logging配置及使用详解
2019/07/23 Python
详解Python time库的使用
2019/10/10 Python
python抓取多种类型的页面方法实例
2019/11/20 Python
利用python实现逐步回归
2020/02/24 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
提高python代码运行效率的一些建议
2020/09/29 Python
Python字典实现伪切片功能
2020/10/28 Python
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
大学生社会实践活动总结
2014/07/03 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
学校计划生育责任书
2015/05/09 职场文书
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang