Pytorch学习笔记(一)-——《深度学习入门之pytorch》

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上运行
Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第1张图片 torch.Tensor()
Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第2张图片 torch.zeros()  torch.randn()

 

  • tensor的一些操作
构造一个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
  • Tensor 和 numpy 的转换

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第3张图片

  • Tensor 放到GPU上

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第4张图片


2.Variable (变量)

  • Variable 和 Tensor 本质上没有区别, 不同的是 Variable 会被放入一个计算图中进行前向,反向传播,自动求导

    Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第5张图片

  • data:取出 Variable 里面的 tensor 数值
  • grad_fn : 表示的是 获得Variable的操作
  • gard :Variable 的反向传播梯度
Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第6张图片 标量的求导
  • requires_grad=True ,这个参数表示是否对这个变量求梯度,默认是false

3.nn.Module

  • 所有的层结构都来自于torch.nn   所有模型的构建都是从基类 nn.Module  继承的

  • 无需自己编写反向传播

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第7张图片 模型的模板

 


4.模型的保存和加载

  • pth  格式和  t7格式都可以

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第8张图片

5.一个回归例子

  • 给出一些点

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第9张图片

  • 构建模型(模型要放到GPU中)

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第10张图片

  • 变量也要放到GPU中

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第11张图片

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

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第12张图片

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

Pytorch学习笔记(一)-——《深度学习入门之pytorch》_第13张图片

 

 

 

 

你可能感兴趣的:(pytorch)