加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

PyTorch的4分钟教程,手把手教你完成线性回归

发布时间:2019-07-29 04:10:42 所属栏目:建站 来源:大数据文摘
导读:副标题#e# 大数据文摘出品 编译:洪颖菲、宁静 PyTorch深度学习框架库之一,是来自Facebook的开源深度学习平台,提供研究原型到生产部署的无缝衔接。 本文旨在介绍PyTorch基础部分,帮助新手在4分钟内实现python PyTorch代码的初步编写。 下文出现的所有功

以下是PyTorch变量用法的简单示例,将v1和v2相乘的结果赋值给v3,其中里面的参数requires_grad的属性默认为False,若一个节点requires_grad被设置为True,那么所有依赖它的节点的requires_grad都为True,主要用于梯度的计算。

  1. #Variable(part of autograd package) 
  2. #Variable (graph nodes) are thin wrappers around tensors and have dependency knowle 
  3. #Variable enable backpropagation of gradients and automatic differentiations 
  4. #Variable are set a 'volatile' flad during infrencing 
  5.  
  6.  
  7. from torch.autograd import Variable 
  8. v1 = Variable(torch.tensor([1.,2.,3.]), requires_grad=False) 
  9. v2 = Variable(torch.tensor([4.,5.,6.]), requires_grad=True) 
  10. v3 = v1*v2 
  11.  
  12.  
  13. v3.data.numpy() 

运行结果:

PyTorch的4分钟教程,手把手教你完成线性回归

  1. #Variables remember what created them 
  2. v3.grad_fn 

运行结果:

PyTorch的4分钟教程,手把手教你完成线性回归

Back Propagation

反向传播算法用于计算相对于输入权重和偏差的损失梯度,以在下一次优化迭代中更新权重并最终减少损失,PyTorch在分层定义对于变量的反向方法以执行反向传播方面非常智能。

以下是一个简单的反向传播计算方法,以sin(x)为例计算差分:

  1. #Backpropagation with example of sin(x) 
  2. x=Variable(torch.Tensor(np.array([0.,1.,1.5,2.])*np.pi),requires_grad=True) 
  3. y=torch.sin(x) 
  4. x.grad 
  5. y.backward(torch.Tensor([1.,1.,1.,1])) 
  6.  
  7.  
  8. #Check gradient is indeed cox(x) 
  9. if( (x.grad.data.int().numpy()==torch.cos(x).data.int().numpy()).all() ): 
  10.     print ("d(sin(x)/dx=cos(x))") 

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读