美文网首页
PyTorch Tersor 相关函数

PyTorch Tersor 相关函数

作者: Persistently | 来源:发表于2018-05-06 14:10 被阅读0次

    1. 生成随机排列

      t.randperm(5)
    

    2. 重新调整tensor形状

      a = t.range(0,6)
      a.veiw(2,3)
    
     a.unsqueeze(1)  #注意形状,在第一维(下标从0开始)上增加1
    
      a.unsqueeze(1)  #压缩第1维的‘1’
      a.unsqueeze()   #把所有维度维“1”的压缩
    
      a.resize_(4,3) #旧的数据依旧保存着,多出的数据会分配新空间
    
    图片.png

    3.设置下限和上界

       t.clamp(a, min = 3)
       t.clamp(a, max = 4)
    

    4. Tensor和Numpy转换
    Tensor和Numpy数组之间具有很高的相似性,彼此之间的互操作也非常简单高效。需要注意的是,Numpy和Tensor共享内存。由于Numpy历史有据,支持丰富的操作,所以当遇到Tensor不支持的操作时,可先转成Numpy数据,处理后再转回tensor,其转换开销很小。

     b = t.from_numpy(a)
     b = t.Tensor(a)
     f  = b.numpy()
    

    5.autograd
    PyTorch在autograd模块中实现了计算图的相关功能,autograd中的核心数据结构时Variable。Variable封装了tensor,并记录对tensor的操作记录用来构建计算图。


    data: 保存variable所包含的tensor
    grad: 保存data对应的梯度,grad也是variable,而不是tensor,它与data形状一致。
    grad_fn:指向一个Function,记录tensor的操作历史,即它是什么操作的输出,用来构建计算图。如果某一个变量是有用户创建的,则它为叶子节点,对应的grad_fn等于None.

    非叶子节点grad计算完之后自动清空.那如何获取中间变量的梯度?

     t.autograd.grad(z,y)  #z对y的梯度,隐式调用backward()
    

    相关文章

      网友评论

          本文标题:PyTorch Tersor 相关函数

          本文链接:https://www.haomeiwen.com/subject/gboyrftx.html