DateWhale学习笔记

## 数据操作
0-d(标量) 1-d(向量) 2-d(矩阵)  
3-d(RGB图片) 4-d(一个RGB图片的批量处理) 5-d(一个视频批量处理)
PS:d为维度

创建数组的需求
>形状
>每个元素的数据类型
>每个元素的值

访问元素:涉及切片

### pytorch
```python
import torch
# 张量表示一个数值组成的数组,这个数组可能有多个维度

x = torch.arrange(12)
x
# out
# ([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10,  11])


# shape属性访问张量的形状和元素个数
# reshape改变张量的形状而不改变元素数量和元素值
# 使用全0、全1、其他常量或者从特定分布中随机采样的数字

torch.zerors((2, 3, 4))
# out
"""   ([[[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],
        
       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]]])"""
```


## 数据处理
处理缺失数据,典型方法包括 插值 和 删除

一般考虑插值
>对于数值,缺失数字补齐即为考虑内容
>对于类别或者离散值,将其视为一个类别,变为数值进行编辑


PS:深度学习一般使用32位浮点数


## 线性代数
### 标量
简单操作
>c = a + b
> 
>c = a * b
>
>c = sin(a)


长度
|a| = a (if a > 0) 或者 =-a (else)

|a + b| <= |a| + |b|

|a * b| = |a| * |b|


### 向量
长度:

向量的长度,为向量每个元素的平方求和再开根号

||a|| >= 0

||a + b|| <= ||a|| + ||b||

||a * b|| = |a| * ||b|| (这里a为标量)


### 矩阵

#### 基础操作

#### 范数
c = A * b hence    ||c|| <= ||A|| * ||b||

取决于如何衡量b和c的长度

#### 常见范数
矩阵范数:最小的满足上面公式的值
Frobenius范数:

```python
A_frob = 0
A = []
for i in range(len(A)):
    for j in A[i]:
        A_frob += j ** 2
A_frob = A_frob ** (1/2)
# 类似于求向量长度
```
一般用F范数,相对简单

#### 特殊矩阵
对称矩阵:Aij = Aji

反对称矩阵:Aij = -Aji

正定

正交矩阵:
>所有行都相互正交
>
>所有行都有长度
>
>可以写成 U * UT = 1  # UT是U的转置


置换矩阵

PS:置换矩阵是正交矩阵

#### 其他
特征向量:不被矩阵改变方向的向量      
PS:对称矩阵总是可以找到特征向量

### 代码实现
```python
import torch
import numpy as np
x = torch.tensor([3.0])  # 标量

x = torch.arange(4)
# x -> tensor([0, 1, 2, 3])
# 向量值可以看作标量值组成的列表

x[3]
# tensor(3)
# 通过索引访问元素

len(x)
# 访问张量的长度 4

x.shape
# 只有一个轴的张量,形状只有一个元素
# torch.Size([4])

# 通过指定两个分量m和n来创建一个形状为m*n的矩阵
A = torch.arange(20).reshape(5, 4)
# tensor([[ 0,  1,  2,  3],
#         [ 4,  5,  6,  7],
#         [ 8,  9, 10, 11],
#         [12, 13, 14, 15],
#         [16, 17, 18, 19]])

# 矩阵的转置
A.T
# tensor([[ 0,  4,  8, 12, 16],
#         [ 1,  5,  9, 13, 17],
#         [ 2,  6, 10, 14, 18],
#         [ 3,  7, 11, 15, 19]])


# 就像向量是标量的推广,矩阵是向量的推广一样,可以构建具有更多轴的数据结构
x = torch.arange(24).reshape(2, 3, 4)
# 4为每一行元素个数,3为列数,2为矩阵数y

x.sum()
# 求和,无论x是什么,输出sum永远是标量


```

### 矩阵计算

#### 亚导数
将导数拓展到不可微的函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值