Pytorch Linear ()简单推导
pytorch,nn.Linear
下图中的A是权重矩阵,b是偏置。

- in_features输入样本的张量大小
- out_features输出样本的张量大小
- bias是偏置
# 测试代码
# batch_size : 输入样例数
# in_features : 输入样例特征数
# out_features : 输出样例特征数
fc = nn.Linear(3, 3) # [in_features, out_features]
tensor = torch.randn(4, 3) # [batch_size, in_features]
output = fc(tensor) # [batch_size, out_features]
print(fc.weight.shape)
print(fc.bias.shape)
print(output.size())
torch.Size([3, 3])
torch.Size([3])
torch.Size([4, 3])
这里我们假设一下AT,x,b
import numpy as np
AT = np.mat([[1, 2, 3],
[2, 1, 3],
[3, 1, 2],
[3, 2, 1]])
x = np.mat([[0.1, 0.2, 0.3],
[0.2, 0.1, 0.3],
[0.3, 0.2, 0.1]])
b = np.mat([1, 1, 1])
输入数据x经过线性变换得到结果如下:
print((AT * x) + b)
[[2.4 2. 2.2]
[2.3 2.1 2.2]
[2.1 2.1 2.4]
[2. 2. 2.6]]
输入输出的张量的shape角度来理解,相当于一个输入为[batch_size, in_features]的张量变换成了[batch_size, out_features]的输出张量。
Pytorch Linear ()简单推导的更多相关文章
- Pytorch 实现简单线性回归
Pytorch 实现简单线性回归 问题描述: 使用 pytorch 实现一个简单的线性回归. 受教育年薪与收入数据集 单变量线性回归 单变量线性回归算法(比如,$x$ 代表学历,$f(x)$ 代表收入 ...
- pytorch搭建简单网络
pytorch搭建一个简单神经网络 import torch import torch.nn as nn # 定义数据 # x:输入数据 # y:标签 x = torch.Tensor([[0.2, ...
- 基于Pytorch的简单小案例
神经网络的理论知识不是本文讨论的重点,假设读者们都是已经了解RNN的基本概念,并希望能用一些框架做一些简单的实现.这里推荐神经网络必读书目:邱锡鹏<神经网络与深度学习>.本文基于Pytor ...
- 贝塞尔曲线.简单推导与用opengl实现动态画出。
在opengl中,我们可以用少许的参数来描述一个曲线,其中贝塞尔曲线算是一种很常见的曲线控制方法,我们先来看维基百科里对贝塞尔曲线的说明: 线性贝塞尔曲线 给定点P0.P1,线性贝塞尔曲线只是一条两点 ...
- Pytorch搭建简单神经网络 Task2
1>建立数据集(并绘制图像) # -*- coding: utf-8 -*- #demo.py import torch import torch.nn.functional as F # 主要 ...
- Python学习3——Python的简单推导
列表推导是一种从其他列表创建列表的方式,类似于数学中的集合推导,列表推导的工作原理非常简单,类似于for循环.(以下代码均在IDLE实现) 最简单的列表推导: >>>[x*x for ...
- HIT手 | 机械电气构造简述和微分运动学及静力学的简单推导
机械结构电气构造简述 HIT手有四个手指,每个手指4个关节,其中第一和第二个关节正交,第三和第四个关节机械耦合,故只有3个自由度,另外大拇指多了一个相对手掌运动的自由度,故一只手掌总共有13各个自 ...
- Logistic Regression 的简单推导
Logistic Regression 是一种 Generalized Linear Model(GLM),也即广义线性模型. 1. LR 的基本假设 LR 模型假设观测值 y 成立的对数几率(log ...
- 2、pytorch——Linear模型(最基础版,理解框架,背诵记忆)(调用nn.Modules模块)
#define y = X @ w import torch from torch import nn #第一模块,数据初始化 n = 100 X = torch.rand(n,2) true_w = ...
随机推荐
- String 和StringBuffer、StringBuilder的区别?
Java提供了:String.StringBuffer和StringBuilder,它们都是CharSequence的实现类,都可以作为字符串使用. String代表了字符序列不可变的字符串:而Str ...
- XMLBeanFactory ?
最常用的就是 org.springframework.beans.factory.xml.XmlBeanFactory ,它 根据 XML 文件中的定义加载 beans.该容器从 XML 文件读取配置 ...
- Java 中如何格式化一个日期?如格式化为 ddMMyyyy 的形式?
Java 中,可以使用 SimpleDateFormat 类或者 joda-time 库来格式日期. DateFormat 类允许你使用多种流行的格式来格式化日期.参见答案中的示例代 码,代码中演示了 ...
- vmware克隆Centos虚拟机网卡无法启动问题
快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...
- Netty学习摘记 —— 心跳机制 / 基于分隔符和长度的协议
本文参考 本篇文章是对<Netty In Action>一书第十一章"预置的ChannelHandler和编解码器"的学习摘记,主要内容为通过 SSL/TLS 保护 N ...
- ROS终端中创建功能包的常用命令
- I2C总线完全版——I2C总线的结构、工作时序与模拟编程
I2C总线的结构.工作时序与模拟编程 I2C总线的结构.工作时序与模拟编程I2C总线(Inter Integrated Circuit)是飞利浦公司于上个世纪80年代开发的一种"电路板级&q ...
- Solution Architect
Solution Architect How to become a solution architect - CareerExplorer What does a solution architec ...
- 好用开源的C#快速开发平台
NFine 是基于 C# 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展,让Web开发更迅速.简单.NFine是一套基于 ASP.NET ...
- hive从入门到放弃(四)——分区与分桶
今天讲讲分区表和分桶表,前面的文章还没看的可以点击链接: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--DDL数据定义 hive从入门到放弃(三)--DML数据操作 分区 ...