pytorch教程

1.梯度计算

官方:如果需要计算导数,可以在Tensor上调用.backward()。        
 1. 如果Tensor是一个标量(即它包含一个元素的数据),则不需要为backward()指定任何参数
 2. 但是如果它有更多的元素,则需要指定一个gradient参数,它是形状匹配的张量。
import torch
from torch.autograd import Variable

x = Variable(torch.ones(2,2),requires_grad = True)

y = x + 2

y.backward(gradient=torch.ones_like(x))

x.grad

z = y * y * 3
out = z.mean()

out.backward()

 

如果是直接y.backward()会报错,因为y不是一个标量。out因为是一个标量,所以不会报错。grad用于计算梯度值

https://blog.csdn.net/weixin_43763731/article/details/88982979?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase

https://blog.csdn.net/u010165147/article/details/83994631

2.checkpoint

pytorch 的 checkpoint 是一种用时间换显存的技术,一般训练模式下,pytorch 每次运算后会保留一些中间变量用于求导,而使用 checkpoint 的函数,则不会保留中间变量,中间变量会在求导时再计算一次,因此减少了显存占用,跟 tensorflow 的 checkpoint 是完全不同的东西。

https://blog.csdn.net/ONE_SIX_MIX/article/details/93937091

3.tensorboard一张图显示多条曲线

https://blog.csdn.net/shahuzi/article/details/81223318

你可能感兴趣的:(pytorch)