李宏毅机器学习深度学习
李宏毅机器学习深度学习
目录
PyTorch教学
两个版本
- 2022.02.18(但这个版本的搬运的画质和音质却不如21年的)
- TA:曾元(Yuan Tseng)
TA:林子权(Tzu-Quan Lin)
- TA:曾元(Yuan Tseng)
- 2021.03.05
- TA:张恒瑞(Heng-Jui Chang)
TA:许湛然(Chan-Jan Hsu)
- TA:张恒瑞(Heng-Jui Chang)
(算了,还是另外找资料来学吧,一来助教讲得不够清晰,二来国内资料能避免科学上网的问题,三来太短 另外找资料会更全)
另外需要先学numpy
新笔记详见Python笔记
常用翻译:
- Torch:火炬
- Tensor:张量
介绍
PyTorch | TensorFlow | |
---|---|---|
开发产商 | Facebook AI | Google Brain |
接口 | Python & C++ | Python, C++, JavaScript, Swift |
调试 | Easier | Difficult (easier in 2.0) |
应用 | Research | Production |
流程
数据类型
详见:https://pytorch.org/docs/stable/tensors.html
Tensor - 数据类型
数据类型 | dtype | tensor |
---|---|---|
32位浮点数 | torch.float | torch.FloatTensor |
64位无符号整数 | torch.long | torch.LongTensor |
构造类
构造
# 1. 从列表 或 NumPy数组
x = torch.tensor([[1, -1], [-1,1]])
x = torch.from_numpy(np.array([[1, -1], [-1,1]]))
""" 二维向量,等同:
tensor([[1., -1.],
[-1., 1.]])
"""
# 2. 零初始化 Zero tensor
x = torch.zeros([2, 2]) """ 二维向量,等同:
tensor([[0., 0.],
[0., 0.]])
"""
# 3. 统一初始化 Unit tensor
x = torch.ones([1, 2, 5]) """ 三维向量,等同:
tensor([[[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]]])
"""
挤出,squeeze
x = torch.zero([1, 2, 3])
x.shape # torch.Size([1, 2, 3])
x = x.squeeze(0)
x.shape # torch.Size([2, 3])
挤入,unsqueeze
x = torch.zero([2, 3])
x.shape # torch.Size([2, 3])
x = x.unsqueeze(1)
x.shape # torch.Size([2, 1, 3])
矩阵转置 / 调换,transpose
x = torch.zero([2, 3])
x.shape # torch.Size([2, 3])
x = x.transpose(0, 1)
x.shape # torch.Size([3, 2])
运算类
连接,cat
cat是指concatenate
x = torch.zeros([2, 1, 3])
y = torch.zeros([2, 3, 3])
z = torch.zeros([2, 2, 3])
w = torch.cat([x, y, z], dim=1)
w.shape # torch.Size([2, 6, 3])
四则、乘开方、
z = x+y
z = x-y
y = x.pow(2) # 乘方
统计
y = x.sum() # 求和
y = x.mean() # 平均数
设备问题
x = x.to('cpu') # cpu
x = x.to('cuda') # gpu
torch.cuda.is_available() # 查看你的显卡是否可用
实战类
如何计算梯度?
对应代码
x = torch.tensor([[1., 0.], [-1., 1.]], requires_grad=True) # (1)
z = x.pow(2).sum() # (2)
z.backward() # (3)
x.grad # (4)
再后就略了
【比较】PyTorch & NumPy
属性
PyTorch | NumPy |
---|---|
x.shape | x.shape |
x.dtype | x.dtype |
np.squeeze(1) | np.expand_dims(x, 1) |
链接到当前文件 0
没有文件链接到当前文件