一、预备知识

pytorch

import torch
x = torch.arange(12)
x.shape
x.numel() #张量中元素总数
x.reshape(3,4)

torch.zeros((2,3,4))
torch.ones((2,3,4))
torch.randn(3,4) #每个元素从均值为0、标准差为1的标准高斯分布(正态分布)中随机采样

torch.cat((X,Y),dim=0) #按行连结两个矩阵
torch.cat((X,Y),dim=1) #按列连结两个矩阵

#如果后续计算没有重复使用X,使用下列操作之一可以减少内存的开销
X[:] = X + Y
X += Y 

#转换为其他python对象
A = X.numpy()
B = torch.tensor(A)
a = torch.tensor([1])
a.item()
float(a)
int(a)

数据预处理

import pandas as pd
data.fillna(data.mean()) #以均值来填充缺失值
data = pd.get_dummies(data, dummy_na=True) #将类别值或离散值的列转换为多列

#转换为张量形式

线性代数

B = A.clone() # 通过分配新内存,将A的⼀个副本分配给B
A.sum(axis=0) #按列求和
A.sum(axis=1) #按行求和
A.mean(axis=0), A.sum(axis=0) / A.shape[0]
A.sum(axis=1, keepdims=True) #非降维求和
A.cumsum(axis=0)
torch.dot(x,y) #点积
torch.mv(A, x) #矩阵-向量积
torch.mm(A, B) #矩阵-矩阵乘法

范数

向量范数是将向量映射到标量的函数 f f f。对于任意向量,其范数满足以下性质:

  • 如果我们按常数因子 α \alpha α缩放向量的所有元素,其范数会按相同常数因子的绝对值缩放:
    f ( α x ) = ∣ α ∣ f ( x ) f(\alpha \mathbf{x}) = |\alpha|f(\mathbf{x}) f(αx)=αf(x)
  • 三角不等式
    f ( x + y ) ≤ f ( x ) + f ( y ) f(\mathbf{x}+\mathbf{y})\leq f(\mathbf{x})+f(\mathbf{y}) f(x+y)f(x)+f(y)
  • 非负性
    f ( x ) ≥ 0 f(\mathbf{x})\geq 0 f(x)0
  • 范数为0当且仅当向量全由0组成
    ∀ i , [ x ] i = 0 ⇔ f ( x ) = 0 \forall i,[\mathbf{x}]_i=0\Leftrightarrow f(\mathbf{x})=0 i,[x]i=0f(x)=0

L 1 L_1 L1范数
∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \|\mathbf{x}\|_1=\sum_{i=1}^n|x_i| x1=i=1nxi

torch.abs(x).sum()

L 2 L_2 L2范数
∥ x ∥ 2 = ∑ i = 1 n x i 2 \|\mathbf{x}\|_2=\sqrt{\sum_{i=1}^nx_i^2} x2=i=1nxi2

torch.norm(x)

L p L_p Lp范数
∥ x ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 / p \|\mathbf{x}\|_p=(\sum_{i=1}^n|x_i|^p)^{1/p} xp=(i=1nxip)1/p
矩阵 X ∈ R m × n \mathbf{X}\in\R^{m\times n} XRm×n F r o b e n i u s Frobenius Frobenius范数是矩阵元素平方和的平方根
∥ X ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 / p \|\mathbf{X}\|_p=(\sum_{i=1}^n|x_i|^p)^{1/p} Xp=(i=1nxip)1/p

梯度

假设 x x x n n n维向量,在微分多元函数时经常使用以下规则:

  • 对于所有 A ∈ R m × n A\in\R^{m\times n} ARm×n,都有 ∇ x A x = A T \nabla_xAx=A^T xAx=AT
  • 对于所有 A ∈ R n × m A\in\R^{n\times m} ARn×m,都有 ∇ x x T A = A \nabla_xx^TA=A xxTA=A
  • 对于所有 A ∈ R n × m A\in\R^{n\times m} ARn×m,都有 ∇ x x T A x = ( A + A T ) x \nabla_xx^TAx=(A+A^T)x xxTAx=(A+AT)x
  • ∇ x ∥ x ∥ 2 = ∇ x x T x = 2 x \nabla_x\|x\|^2=\nabla_xx^Tx=2x xx2=xxTx=2x
    同样,对于矩阵 X X X,有 ∇ x ∥ X ∥ F 2 = 2 X \nabla_x\|X\|_F^2=2X xXF2=2X
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值