python变量(杂)不定时更新
程序员文章站
2023-12-28 20:31:34
cuda上面的变量类型只能是tensor,不能是其他...
记录遇到的一些问题以及知识点。。菜鸟一只,有问题欢迎批评指正。
一
- cuda上面的变量类型只能是tensor,不能是其他的类型。、
- 将cuda上的tensor转换为numpy:
>>>A.cpu().detach().numpy() #转换为cpu模式,截断梯度反向传播,转numpy
二、ndarray
- numpy: 可采用ones/ zeros/ eye/ diag/ random.randint等创建矩阵
- 对于ndarray求和如:
>>>a = np.random.randint(0,30,(2,3))
>>> a
array([[22, 11, 1],
[ 8, 21, 27]])
>>> l = []
>>> l.append(a)
>>> l
[array([[22, 11, 1],
[ 8, 21, 27]])]
>>> b = np.random.randint(0,30,(2,3))
>>> b
array([[16, 5, 16],
[18, 7, 25]])
>>> l.append(b)
>>> c = np.random.randint(0,30,(2,3))
>>> l.append(c)
>>> l
[array([[22, 11, 1],
[ 8, 21, 27]]), array([[16, 5, 16],
[18, 7, 25]]), array([[17, 15, 0],
[24, 29, 20]])]
>>> sum(l)
array([[55, 31, 17],
[50, 57, 72]])
>>> sum(l)/6
array([[ 9.16666667, 5.16666667, 2.83333333],
[ 8.33333333, 9.5 , 12. ]])
- 查看array中是否有nan(Not A Number,任何与nan相关的计算都返回nan)
查看是否为nan值:True为nan
>>> np.isnan(array)
判断array中有无nan值:np.isnan(array).any()。
1> .any():如果所有元素均为空、0、false,则返回False,否则为True。(有一个真"True",则真"True";所有元素均假"False",才假"False")
>>> np.array([0,1,2,3]).any()
True
>>> np.array([6,1,2,3]).any()
True
>>> np.array([0,0,0,0]).any()
False
2> .all():可判断array中有无为False的元素(0、空、None、False均为False),如果有,则为False,否则为True.(所有均真"True",才真"True";有一个元素假"False",则假"False")
>>> np.array([6,1,2,3]).all()
True
>>> np.array([0,1,2,3]).all()
False
>>> np.array([0,0,0,0]).all()
False
- np.repeat,np.tile()复制
三、tensor
>>>torch.mm(A,B) #矩阵A,B相乘(只用于二维)高维应用torch.matmul()
>>>torch.mul(A,B) #矩阵A,B对应位相乘,矩阵维度不同时会自动填充
>>>torch.randn(2,3) #生成2X3的正态分布的的tensor
>>>torch.mean() #求均值,可指定维度
>>>torch.pow(A,n) #对A中各元素求n次幂
>>>torch.add(A,n) #A中各元素值均加n;torch.add(A,n,b)A中各元素加n*b
>>>torch.div(A,B) #或torch.div(A,n)前者为两张量对应位相除,后者为A逐位除标量n
参考
本文地址:https://blog.csdn.net/weixin_43897173/article/details/107114088