pytorch链接
http://pytorch123.com/
https://pytorch-cn.readthedocs.io/zh/latest/
目录
1.tensor
2.Variable (变量)
3.nn.Module
4.模型的保存和加载
5.一个回归例子
1.tensor
- Tensor是一个多维矩阵
- PyTorch的Tensor可以和numpy ndarray 相五转换,唯一不同的是PyTorch的 tensor 可以在GPU上运行,而numpy ndarray只能在CPU上运行
torch.Tensor()
torch.zeros() torch.randn()
构造一个5x3矩阵,不初始化
x = torch.empty(5, 3)
tensor(1.00000e-04 *
[[-0.0000, 0.0000, 1.5135],
[ 0.0000, 0.0000, 0.0000],
[ 0.0000, 0.0000, 0.0000],
[ 0.0000, 0.0000, 0.0000],
[ 0.0000, 0.0000, 0.0000]])
构造一个随机初始化的矩阵
x = torch.rand(5, 3)
tensor([[ 0.6291, 0.2581, 0.6414],
[ 0.9739, 0.8243, 0.2276],
[ 0.4184, 0.1815, 0.5131],
[ 0.5533, 0.5440, 0.0718],
[ 0.2908, 0.1850, 0.5297]])
构造一个矩阵全为 0,而且数据类型是 long
x = torch.zeros(5, 3, dtype=torch.long)
tensor([[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0]])
获取它的维度信息:
print(x.size()) 加法: 方式 1 y = torch.rand(5, 3) print(x + y)
加法: 方式2 print(torch.add(x, y))
改变一个 tensor 的大小或者形状
x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8) # the size -1 is inferred from other dimensions
print(x.size(), y.size(), z.size())
输出
torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])
使用item()获取Tensor的value
x = torch.randn(1)
print(x)
print(x.item())
tensor([ 0.9422])
0.9422121644020081


2.Variable (变量)
标量的求导
- requires_grad=True ,这个参数表示是否对这个变量求梯度,默认是false
3.nn.Module
模型的模板
4.模型的保存和加载

5.一个回归例子



- 前向反向传播
- 每次做反向传播之前都要归零梯度, optimizer.zero_ grad () 不然梯度会累加在一起

- 预测
- model .eval () 将模型变成测试模式,这是因为有些层Dropout BatchNormalization 在训练和测试的时候是不 样的,所以我们需要通过这样一个操作来转换这些不一样的层操作

|