PyTorch学习记录
PyTorch是一个Python机器学习框架
张量
创建一个张量
torch.tensor([1,2,3]) # tensor([1, 2, 3]) |
torch.zeros(2,3) # tensor([[0., 0., 0.], |
torch.ones(2,2) # tensor([[1., 1.], |
torch.arange(0,10,2) # tensor([0, 2, 4, 6, 8]) |
torch.linspace(0,1,5) # tensor([0.0000, 0.2500, 0.5000, 0.7500, 1.0000]) |
torch.eye(3) # tensor([[1., 0., 0.], |
torch.rand(2,3) # tensor([[0.1234, 0.6789, 0.2345], |
torch.randn(2,3) # 标准正态分布,均值0方差1 |
torch.empty(2,2) # 未初始化内存的张量(内容随机) |
张量属性
x = torch.randn(2,3) |
基础运算
a = torch.tensor([1,2,3]) |
矩阵运算
A = torch.tensor([[1.,2.],[3.,4.]]) |
维度操作
x = torch.arange(6).view(2,3) # tensor([[0, 1, 2], |
切片
x = torch.arange(9).reshape(3,3) # tensor([[0,1,2], |
数学函数
随机数与采样
torch.manual_seed(0) |
网络模块
nn.Module
所有网络的基类,可以用于自定义网络模型
class Attention(nn.Module): |
基础层
# 全连接层 |
容器
nn.Sequential
拥有自动前向传播
# 将多层网络按顺序级联 |
nn.ModuleList
一组模型的集合,需要手动实现forward
权重
# 保存 |
预处理
图像转换
transforms.Resize((256,256)) |
张量化与归一化
transforms.ToTensor() # PIL->Tensor, 0-1 |
组合
transforms.Compose([ |