Linear深入分析

题目

'''
Description: Linear
Autor: 365JHWZGo
Date: 2021-12-15 15:17:55
LastEditors: 365JHWZGo
LastEditTime: 2021-12-15 16:06:23
'''

代码

import torch 
import torch.nn as nn

class Demo(nn.Module):
    def __init__(self,input_size,output_size):
        super(Demo,self).__init__()
        self.input_size = input_size
        self.output_size = output_size
        self.linear = nn.Linear(self.input_size,self.output_size)

    def forward(self,inp,out):
        output1 = self.linear(inp)
        output2 = self.linear(out)
        return output1,output2


if __name__ == '__main__':
    input_size = 4
    output_size =5
    

    demo = Demo(input_size,output_size)
    x = torch.randn(2,4)
    y = torch.randn(3,4)
    out1,out2 = demo(x,y)
    print(out1)
    print(out2)

运行结果

在这里插入图片描述

总结

Linear的作用是进行线性变化,实质上矩阵的乘法
y = W ∗ x + b y = W*x+b y=Wx+b
W是权重,b是偏置

特征Wb
维度(out_features,in_features)(out_features,1)
特征xy
维度(in_features,random_input_size)(out_features,random_input_size)

Linear类中init的定义

class Linear(Module):
	def __init__(self, in_features: int, out_features: int, bias: bool = True,device=None, dtype=None) -> None:
        factory_kwargs = {'device': device, 'dtype': dtype}
        super(Linear, self).__init__()
        self.in_features = in_features
        self.out_features = out_features
        self.weight = Parameter(torch.empty((out_features, in_features), **factory_kwargs))
        if bias:
            self.bias = Parameter(torch.empty(out_features, **factory_kwargs))
        else:
            self.register_parameter('bias', None)
        self.reset_parameters()

从中可以看出Linear是自己创造出W,bias是根据用户是否输入,如果为True,则
self.bias = Parameter(torch.empty(out_features, **factory_kwargs)),否则self.register_parameter('bias', None)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
线性代数是数学中的一个重要分支,它研究向量空间和线性映射的结构和性质。高级线性代数则更深入地探讨了向量空间、线性映射、内积空间、矩阵、特征值和特征向量等内容。 在高级线性代数中,我们会学习更加抽象和深入的概念,比如多线性代数、张量代数、泛函分析等。我们将深入研究线性变换的性质,探讨其在不同向量空间之间的映射规律,以及在不同基下的表示问题。我们还会学习矩阵的特征值和特征向量,以及它们在对角化和相似变换中的应用。 高级线性代数还涉及到了对称矩阵、正定矩阵、正交矩阵等特殊类型矩阵的研究,以及它们在实际问题中的应用。我们将深入研究内积空间和希尔伯特空间的性质,以及它们在量子力学、信号处理等领域中的应用。 此外,在高级线性代数中,我们还会学习到一些先进的研究方向,比如矩阵分解、奇异值分解、特征值分解等内容,以及它们在数据压缩、机器学习等领域中的应用。 总之,高级线性代数作为数学中的重要分支,不仅具有较高的理论和抽象性,而且在科学研究和工程技术领域中有着广泛的应用价值。对于数学专业的学生来说,深入学习高级线性代数可以帮助他们更好地理解和应用数学知识;对于工程技术领域的从业者来说,了解高级线性代数的知识可以帮助他们更好地理解和分析实际问题,提高工作的效率和水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

365JHWZGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值