zoukankan      html  css  js  c++  java
  • pytorch遇到的问题---不定期更新

    之前做彭老师的项目(人体属性),就是有这个问题!

    例如:

    a = torch.Tensor((1,2,3))

    b = torch.Tensor((3,4,5))

    想要变成[[1,2,3],[3,4,5]]

    错误做法:

    a = np.array(a.data.cpu())

    b = np.array(b.data.cpu())

    c = np.vstack((a,b))

    c = Variable(c).cuda()


    正确做法:

    c = Torch.stack([a,b],0)



    原因:进行bp的时候,会中断

    Operation ban inplace

    不能内联加减,除非另赋值

    内联可以乘除,这些没问题

    什么意思?其实很好理解:

    c=torch.Tensor(torch.randn(2,3))#其中新版本的pytorch torch.Tensor已经可以自带variable了

    c=c*2

    w=torch.Tensor(torch.randn(2,3))

    d=c*w

    这是可以继续bp的,因为c=c*2是可以bp的

    c=torch.Tensor(torch.randn(2,3))#其中新版本的pytorch torch.Tensor已经可以自带variable了

    c=c-2

    w=torch.Tensor(torch.randn(2,3))

    d=c*w

    这是不可以继续bp的,op是有保护机制的,即如果计算w=w+alpha*dw,那么(c:dw)到底是减2的c还是不减2的,因为有保护机制,所以c只能是torch.Tensor(torch.randn(2,3)),而不是c=c-2,如果实在想c=c-2,那么另设一个变量,比如a=c-2

     

     

    不同的weight给不同的loss,可以看出这个loss的权重,但是weight一定要加上softmax,要不然都会bp为0

    Can't write viminfo file /*/.viminfo!

    1 切换到root用户(一定要)

    2 rm -f .viminf*.tmp

    遇到ubuntu里面同样的东西,或者是蓝色,绿色的东西,用”ll“命令看是否是链接

  • 相关阅读:
    svg入门
    常用颜色对照表
    字节序
    eclipse常用快捷键
    jenkins 安装
    redis
    Linux
    jenkins
    jenkins
    jenkins- 自动部署java包至远程服务器
  • 原文地址:https://www.cnblogs.com/lllcccddd/p/10510400.html
Copyright © 2011-2022 走看看