
pytorch学习
一昂Yang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Batch Normalization的优势
总的来说,BN通过将每一层网络的输入进行normalization,保证输入分布的均值与方差固定在一定范围内,减少了网络中的Internal Covariate Shift问题,并在一定程度上缓解了梯度消失,加速了模型收敛;并且BN使得网络对参数、激活函数更加具有鲁棒性,降低了神经网络模型训练和调参的复杂度;最后BN训练过程中由于使用mini-batch的mean/variance作为总体样本统计量估计,引入了随机噪声,在一定程度上对模型起到了正则化的效果。原创 2022-09-07 15:28:00 · 839 阅读 · 1 评论 -
手写BN和Conv层融合
手写BN和Conv层融合原创 2022-07-12 11:31:11 · 348 阅读 · 0 评论 -
detach()与detach_()
accumulation_steps转载 2022-07-11 11:16:12 · 574 阅读 · 0 评论 -
Loss.backward()
loss.backward() retain_graph=True原创 2022-07-11 11:04:11 · 10314 阅读 · 2 评论 -
pytorch Variable学习
Variable为何物?Variable是对Tensor的一个封装,具有三个属性,Variable的Tensor本身的.data,对应Tensor的梯度.grad,以及这个Variable是通过什么方式得到的.grad_fn(例如加减乘除,卷积等操作)#将tensor转换成Variablevariable = Variable(tensor) #Varibale 默认时不要求梯度的,如果要求梯度,需要说明variable = Variable(tensor,requires_grad=True原创 2021-05-07 14:33:36 · 213 阅读 · 0 评论 -
torch.autograd.Function
pytorch自定义layer有两种方式:方式一:通过继承torch.nn.Module类来实现拓展。只需重新实现__init__和forward函数。方式二:通过继承torch.autograd.Function,除了要实现__init__和forward函数,还要实现backward函数(就是自定义求导规则)。方式一看着更简单一点,torch.nn.Module不香么?为毛要用方式...原创 2020-01-09 15:44:17 · 3602 阅读 · 0 评论 -
Pytorch to(device)
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")model.to(device)这两行代码放在读取数据之前。mytensor = my_tensor.to(device)这行代码的意思是将所有最开始读取数据时的tensor变量copy一份到device所指定的GPU上去,之后的运算都在GP...转载 2019-07-09 16:21:43 · 120046 阅读 · 7 评论