东阳的学习记录,坚持就是胜利!
文章目录
数学操作
- abs
- absolute(abs的别名)
- acos(计算tensor中每个元素的反余弦)
- acosh(反双曲余弦)
- add(tensor元素对应相加)
- addcdiv(tensor, value=1, tensor1, tensor2, out=None) → Tensor(用tensor2对tensor1逐元素相除,然后乘以标量值value 并加到tensor)
- addcmul(input, tensor1, tensor2, *, value=1, out=None) → Tensor(执行张量1乘以张量2的元素级乘法,将结果乘以标量值,然后将其添加到输入。)
- angle(输出输入张量的元素角度,以弧度表示)
- 等等…
比较操作
torch.eq
torch.eq(input, other, out=None) → Tensor
比较元素相等性。第二个参数可为一个数或与第一个参数同类型形状的张量。
返回值: 一个 torch.ByteTensor 张量,包含了每个位置的比较结果(相等为1,不等为0 )
例子:
>>> torch.eq(torch.Tensor([[1, 2], [3, 4]]), torch.Tensor([[1, 1], [4, 4]]))
1 0
0 1
[torch.ByteTensor of size 2x2]
torch.equal
如果两个张量有相同的形状和元素值,则返回True ,否则 False。
>>> torch.equal(torch.Tensor([1, 2]), torch.Tensor([1, 2]))
True
torch.max
不指定维度
返回输入张量所有元素的最大值。
>>> torch.max(torch.tensor([1,2,3,489,1]))
tensor(489)
指定维度
返回输入张量给定维度上的最大值,并同时返回每个最大值的位置索引。
torch.max(input, dim, max=None, max_indices=None) -> (Tensor, LongTensor)
例子:
>>> torch.max(a, 0)
torch.return_types.max(
values=tensor([2.0806, 0.8812, 0.9576, 2.3047]),
indices=tensor([2, 0, 0, 1]))
torch.min
前两种和max一样。但是min还多了一个
torch.min(input, other, out=None) → Tensor
>>> a = torch.randn(4)
>>> a
1.3869
0.3912
-0.8634
-0.5468
[torch.FloatTensor of size 4]
>>> b = torch.randn(4)
>>> b
1.0067
-0.8010
0.6258
0.3627
[torch.FloatTensor of size 4]
>>> torch.min(a, b)
1.0067
-0.8010
-0.8634
-0.5468
[torch.FloatTensor of size 4]
torch.ne
torch.ne(input, other, out=None) → Tensor
逐元素比较input和other , 即是否 input!=other。 第二个参数可以为一个数或与第一个参数相同形状和类型的张量
感觉和eq差不多
>>> torch.ne(torch.Tensor([[1, 2], [3, 4]]), torch.Tensor([[1, 1], [4, 4]]))
0 1
1 0
[torch.ByteTensor of size 2x2]
torch.sort
torch.sort(input, dim=None, descending=False, out=None) -> (Tensor, LongTensor)
对输入张量input沿着指定维按升序排序。如果不给定dim,则默认为输入的最后一维。如果指定参数descending为True,则按降序排序
返回元组 (sorted_tensor, sorted_indices) , sorted_indices 为原始输入中的下标。
例子:
>>> x = torch.randn(3, 4)
>>> sorted, indices = torch.sort(x)
>>> sorted
-1.6747 0.0610 0.1190 1.4137
-1.4782 0.7159 1.0341 1.3678
-0.3324 -0.0782 0.3518 0.4763
[torch.FloatTensor of size 3x4]
>>> indices
0 1 3 2
2 1 0 3
3 1 0 2
[torch.LongTensor of size 3x4]
>>> sorted, indices = torch.sort(x, 0)
>>> sorted
-1.6747 -0.0782 -1.4782 -0.3324
0.3518 0.0610 0.4763 0.1190
1.0341 0.7159 1.4137 1.3678
[torch.FloatTensor of size 3x4]
>>> indices
0 2 1 2
2 0 2 0
1 1 0 1
[torch.LongTensor of size 3x4]
torch.topk
torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor)
沿给定dim维度返回输入张量input中 k 个最大值。 如果不指定dim,则默认为input的最后一维。 如果为largest为 False ,则返回最小的 k 个值。
返回一个元组 (values,indices),其中indices是原始输入张量input中测元素下标。 如果设定布尔值sorted 为_True_,将会确保返回的 k 个值被排序。
参数:
- input (Tensor) – 输入张量
- k (int) – “top-k”中的k
- dim (int, optional) – 排序的维
- largest (bool, optional) – 布尔值,控制返回最大或最小值(默认True)
- sorted (bool, optional) – 布尔值,控制返回值是否排序(默认True)
- out (tuple, optional) – 可选输出张量 (Tensor,
- LongTensor) output buffers
其他操作
torch.dot
torch.dot(tensor1, tensor2) → float
计算两个张量的点乘(内乘),两个张量都为1-D 向量.
torch.eig
返回特征向量
torch.mm
torch.mm(mat1, mat2, out=None) → Tensor
对矩阵mat1和mat2进行相乘。 如果mat1 是一个n×m 张量,mat2 是一个 m×p 张量,将会输出一个 n×p 张量out。