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实现PS滤镜中马赛克效果示例
Jan 20 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
Python交互式图形编程的实现
Jul 25 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
python实现指定ip端口扫描方式
Dec 17 Python
Python解析多帧dicom数据详解
Jan 13 Python
TensorFLow 变量命名空间实例
Feb 11 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
PHP读取XML值的代码(推荐)
2011/01/01 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
js实现转动骰子模型
2019/10/24 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
常用python编程模板汇总
2016/02/12 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
Python数学形态学实例分析
2019/09/06 Python
python循环输出三角形图案的例子
2019/11/22 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
国际经济贸易专业推荐信
2013/11/06 职场文书
年度考核自我鉴定
2013/11/09 职场文书
医学生自荐信范文
2013/12/03 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
婚礼主持结束词
2014/03/13 职场文书
安全先进班组材料
2014/12/26 职场文书
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python