当前位置: 首页 > news >正文

做最好的网站上海小程序开发合肥

做最好的网站,上海小程序开发合肥,做明星粉丝网站,深圳软件定制公司import torch1. Requires_grad但是#xff0c;模型毕竟不是人#xff0c;它的智力水平还不足够去自主辨识那些量的梯度需要计算#xff0c;既然如此#xff0c;就需要手动对其进行标记。在PyTorch中#xff0c;通用的数据结构tensor包含一个attributerequires_grad#x…import torch1. Requires_grad但是模型毕竟不是人它的智力水平还不足够去自主辨识那些量的梯度需要计算既然如此就需要手动对其进行标记。在PyTorch中通用的数据结构tensor包含一个attributerequires_grad它被用于说明当前量是否需要在计算中保留对应的梯度信息以上文所述的线性回归为例容易知道参数www为需要训练的对象为了得到最合适的参数值我们需要设置一个相关的损失函数根据梯度回传的思路进行训练。官方文档中的说明如下If there’s a single input to an operation that requires gradient, its output will also require gradient.只要某一个输入需要相关梯度值则输出也需要保存相关梯度信息这样就保证了这个输入的梯度回传。而反之若所有的输入都不需要保存梯度那么输出的requires_grad会自动设置为False。既然没有了相关的梯度值自然进行反向传播时会将这部分子图从计算中剔除。Conversely, only if all inputs don’t require gradient, the output also won’t require it. Backward computation is never performed in the subgraphs, where all Tensors didn’t require gradients.对于那些要求梯度的tensorPyTorch会存储他们相关梯度信息和产生他们的操作这产生额外内存消耗为了优化内存使用默认产生的tensor是不需要梯度的。而我们在使用神经网络时这些全连接层卷积层等结构的参数都是默认需要梯度的。a torch.tensor([1., 2., 3.])print(a:, a.requires_grad)b torch.tensor([1., 4., 2.], requires_grad True)print(b:, b.requires_grad)print(sum of a and b:, (ab).requires_grad)a: Falseb: Truesum of a and b: True2. Computation Graph从PyTorch的设计原理上来说在每次进行前向计算得到pred时会产生一个用于梯度回传的计算图这张图储存了进行back propagation需要的中间结果当调用了.backward()后会从内存中将这张图进行释放这张计算图保存了计算的相关历史和提取计算所需的所有信息以output作为root节点以input和所有的参数为leaf节点we only retain the grad of the leaf node with requires_grad True在完成了前向计算的同时PyTorch也获得了一张由计算梯度所需要的函数所组成的图而从数据集中获得的input其requires_grad为False故我们只会保存参数的梯度进一步据此进行参数优化在PyTorch中multi-task任务一个标准的train from scratch流程为for idx, data in enumerate(train_loader):xs, ys dataoptmizer.zero_grad()# 计算d(l1)/d(x)pred1 model1(xs) #生成graph1loss loss_fn1(pred1, ys)loss.backward() #释放graph1# 计算d(l2)/d(x)pred2 model2(xs)#生成graph2loss2 loss_fn2(pred2, ys)loss.backward() #释放graph2# 使用d(l1)/d(x)d(l2)/d(x)进行优化optmizer.step()Computation Graph本质上是一个operation的图所有的节点都是一个operation而进行相应计算的参数则以叶节点的形式进行输入借助torchviz库以下面的模型作为示例import torch.nn.functional as Fimport torch.nn as nnclass Conv_Classifier(nn.Module):def __init__(self):super(Conv_Classifier, self).__init__()self.conv1 nn.Conv2d(1, 5, 5)self.pool1 nn.MaxPool2d(2)self.conv2 nn.Conv2d(5, 16, 5)self.pool2 nn.MaxPool2d(2)self.fc1 nn.Linear(256, 20)self.fc2 nn.Linear(20, 10)def forward(self, x):x F.relu(self.pool1((self.conv1(x))))x F.relu(self.pool2((self.conv2(x))))x F.dropout2d(x, trainingself.training)x x.view(-1, 256)x F.relu(self.fc1(x))x F.relu(self.fc2(x))return xMnist_Classifier Conv_Classifier()from torchviz import make_dotinput_sample torch.rand((1, 1, 28, 28))make_dot(Mnist_Classifier(input_sample), paramsdict(Mnist_Classifier.named_parameters()))其对应的计算梯度所需的图(计算图)为可以看到所有的叶子节点对应的操作都被记录以便之后的梯度回传。
http://www.fuzeviewer.com/news/20234/

相关文章:

  • 专题页网站怎么做建设网站代码
  • 2025年自动油皮机实力厂家权威推荐榜单:全自动腐竹机/全自动油皮机/全自动腐竹生产线源头厂家精选
  • 昆明做网站竞价wordpress 分页404
  • 苍南网站制作海外推广方式有哪些
  • 闽侯县网站建设做网站 就上凡科网
  • 锦州网站建设资讯网站品牌词优化怎么做
  • 建立简单的网站做网站投入
  • 关于建设网站的申请网络服务提供者知道或者应当知道网络
  • 千套模板快速自助建站网站新闻对百度优化有用吗
  • 写作网站保底和全勤的区别高级程序员培训
  • 中山市网站建设公司网络推广方案找v信hyhyk1做推广好
  • 网站利用百度离线地图十大基本营销方式
  • 做网站为什么选择竞网智赢网站seo推广方案
  • 2025年自调式滚轮架定制厂家权威推荐:滚轮支架/风塔滚轮架/电动行走滚轮架源头厂家精选
  • 怀化火车站网站原画培训价格一般是多少
  • google 网站优化工具昆明猫咪科技网站建设
  • 贪心(2)——按位异或
  • 简述对网站进行评析的几个方面.网站开源系统
  • 企业为什么要做网站建设大连网站建设公司领超科技怎么样
  • 学术会议合集 | 声学、流体力学、当代体育、信息技术等EI会议合集
  • 舟山市建设信息港网站网站实名认证必须做么
  • 做首图的网站中国住房和城乡建设部建造师网站
  • 电商网站用什么做最好网站用cms
  • 关于网站开发的创业计划书公司做网站的法律依据
  • 网站项目建设策划书腾讯官网首页登录入口
  • 网页制作免费教程seo站内优化教程
  • 客户案例|思念食品x燕千云AI-ITR,构建智能协同的客户服务流体系
  • 天津免费做网站求职简历网
  • logo创意南阳做网站优化的公司
  • 基本型企业网站论文事件营销的步骤