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标准库urllib2的一些使用细节总结
Mar 16 Python
浅谈Python的异常处理
Jun 19 Python
基于Python闭包及其作用域详解
Aug 28 Python
python实现聊天小程序
Mar 13 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
python实现windows壁纸定期更换功能
Jan 21 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
python使用celery实现异步任务执行的例子
Aug 28 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
Oct 15 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
Nov 17 Python
python文件路径操作方法总结
Dec 21 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一些有意思的小区别
2006/12/06 PHP
php strtotime 函数UNIX时间戳
2009/01/14 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
jquery tools之tooltip
2009/07/25 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
python中zip和unzip数据的方法
2015/05/27 Python
python实现自动重启本程序的方法
2015/07/09 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
Android笔试题总结
2014/11/29 面试题
会计岗位职责模板
2014/03/12 职场文书
医学生求职自荐书
2014/06/12 职场文书
毕业生面试求职信
2014/06/23 职场文书
学校工作推荐信范文
2014/07/11 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书