用pytorch的nn.Module构造简单全链接层实例


Posted in Python onJanuary 14, 2020

python版本3.7,用的是虚拟环境安装的pytorch,这样随便折腾,不怕影响其他的python框架

1、先定义一个类Linear,继承nn.Module

import torch as t
from torch import nn
from torch.autograd import Variable as V
 
class Linear(nn.Module):

  '''因为Variable自动求导,所以不需要实现backward()'''
  def __init__(self, in_features, out_features):
    super().__init__()
    self.w = nn.Parameter( t.randn( in_features, out_features ) ) #权重w 注意Parameter是一个特殊的Variable
    self.b = nn.Parameter( t.randn( out_features ) )   #偏值b
  
  def forward( self, x ): #参数 x 是一个Variable对象
    x = x.mm( self.w )
    return x + self.b.expand_as( x ) #让b的形状符合 输出的x的形状

2、验证一下

layer = Linear( 4,3 )
input = V ( t.randn( 2 ,4 ) )#包装一个Variable作为输入
out = layer( input )
out

#成功运行,结果如下:

tensor([[-2.1934, 2.5590, 4.0233], [ 1.1098, -3.8182, 0.1848]], grad_fn=<AddBackward0>)

下面利用Linear构造一个多层网络

class Perceptron( nn.Module ):
  def __init__( self,in_features, hidden_features, out_features ):
    super().__init__()
    self.layer1 = Linear( in_features , hidden_features )
    self.layer2 = Linear( hidden_features, out_features )
  def forward ( self ,x ):
    x = self.layer1( x )
    x = t.sigmoid( x ) #用sigmoid()激活函数
    return self.layer2( x )

测试一下

perceptron = Perceptron ( 5,3 ,1 )
 
for name,param in perceptron.named_parameters(): 
  print( name, param.size() )

输出如预期:

layer1.w torch.Size([5, 3])
layer1.b torch.Size([3])
layer2.w torch.Size([3, 1])
layer2.b torch.Size([1])

以上这篇用pytorch的nn.Module构造简单全链接层实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python模拟登录12306的方法
Dec 30 Python
python抓取网页中图片并保存到本地
Dec 01 Python
快速入手Python字符编码
Aug 03 Python
TensorFlow实现MLP多层感知机模型
Mar 09 Python
python爬虫豆瓣网的模拟登录实现
Aug 21 Python
win10系统下python3安装及pip换源和使用教程
Jan 06 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
tensorflow模型转ncnn的操作方式
May 25 Python
Python生成并下载文件后端代码实例
Aug 31 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
详解Python中下划线的5种含义
Jul 15 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 #Python
Python实现bilibili时间长度查询的示例代码
Jan 14 #Python
基于python监控程序是否关闭
Jan 14 #Python
关于pytorch中全连接神经网络搭建两种模式详解
Jan 14 #Python
使用Pytorch来拟合函数方式
Jan 14 #Python
pytorch 模拟关系拟合——回归实例
Jan 14 #Python
PyTorch实现AlexNet示例
Jan 14 #Python
You might like
php $_SERVER当前完整url的写法
2009/11/12 PHP
php实现用户在线时间统计详解
2011/10/08 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
js实现自定义路由
2017/02/04 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
详解Vite的新体验
2021/02/22 Javascript
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
Python线程详解
2015/06/24 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
python实现自动发送报警监控邮件
2018/06/21 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
Python 使用type来定义类的实现
2019/11/19 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
房地产管理毕业生自荐信
2013/11/04 职场文书
如何写好建议书
2014/03/13 职场文书
党支部承诺书
2015/01/20 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
无房证明样本
2015/06/17 职场文书