torch
.
cross(
input
, other, dim
=-1
, out
=
None
)
-->
Tensor 返回沿着维度dim上,两个张量input和other的向量积(叉积)。input和other必须有相同的形状,且指定的dim维上size必须为3。如果不指定dim,则默认为第一个尺度为3的维。
参数:
--
input (Tensor)
:输入张量
--other (Tensor)
:第二个输入张量
--dim (int, optional)
:沿着此维进行叉积操作
例子:
>>> a = torch.randn(4, 3)
>>> a
-0.6652 -1.0116 -0.6857
0.2286 0.4446 -0.5272
0.0476 0.2321 1.9991
0.6199 1.1924 -0.9397
[torch.FloatTensor of size 4x3]
>>> b = torch.randn(4, 3)
>>> b
-0.1042 -1.1156 0.1947
0.9947 0.1149 0.4701
-1.0108 0.8319 -0.0750
0.9045 -1.3754 1.0976
[torch.FloatTensor of size 4x3]
>>> torch.cross(a, b, dim=1)
-0.9619 0.2009 0.6367
0.2696 -0.6318 -0.4160
-1.6805 -2.0171 0.2741
0.0163 -1.5304 -1.9311
[torch.FloatTensor of size 4x3]
>>> torch.cross(a, b)
-0.9619 0.2009 0.6367
0.2696 -0.6318 -0.4160
-1.6805 -2.0171 0.2741
0.0163 -1.5304 -1.9311
[torch.FloatTensor of size 4x3]
torch
.
diag(
input
, diagonal
=0
, out
=
None
)
-->
Tensor 如果输入是一个向量(1D张量),则返回一个以input为对角线元素的2D方阵如果输入是一个矩阵(2D张量),则返回一个包含input对角线元素的1D张量 参数diagonal指定对角线: –
diagonal = 0, 主对角线 –
diagonal > 0, 主对角线之上 –
diagonal < 0,
主对角线之下
参数:
--
input (Tensor)
:输入张量
--diagonal (int, optional)
:指定对角线
--out (Tensor, optional):输出张量
例子:
取得以input为对角线的方阵:
>>> a = torch.randn(3)
>>> a
1.0480
-2.3405
-1.1138
[torch.FloatTensor of size 3]
>>> torch.diag(a)
1.0480 0.0000 0.0000
0.0000 -2.3405 0.0000
0.0000 0.0000 -1.1138
[torch.FloatTensor of size 3x3]
>>> torch.diag(a, 1)
0.0000 1.0480 0.0000 0.0000
0.0000 0.0000 -2.3405 0.0000
0.0000 0.0000 0.0000 -1.1138
0.0000 0.0000 0.0000 0.0000
[torch.FloatTensor of size 4x4]
取得给定矩阵第k个对角线:
>>> a = torch.randn(3, 3)
>>> a
-1.5328 -1.3210 -1.5204
0.8596 0.0471 -0.2239
-0.6617 0.0146 -1.0817
[torch.FloatTensor of size 3x3]
>>> torch.diag(a, 0)
-1.5328
0.0471
-1.0817
[torch.FloatTensor of size 3]
>>> torch.diag(a, 1)
-1.3210
-0.2239
[torch.FloatTensor of size 2]
torch
.
histc(
input
, bins
=100
,
min
=0
,
max
=0
, out
=
None
)
-->
Tensor 计算输入张量的直方图。以min和max为range边界,将其均分成bins个直条,然后将排序好的数据划分到各个直条(bins)中。如果min和max都为0,则利用数据中的最大最小值作为边界。
参数:
--input (Tensor)
:输入张量
--bins (int)
:直方图
bins(
直条
)
的个数
(
默认
100
个
)
--min (int)
:
range
的下边界
(
包含
)
--
max (int)
:
range
的上边界
(
包含
)
--out (Tensor, optional):结果张量
返回:直方图 返回类型:张量
例子:
>>> torch.histc(torch.FloatTensor([1, 2, 1]), bins=4,
min=0, max=3) , →
FloatTensor([0, 2, 1, 0])
torch
.
renorm(
input
, p, dim, maxnorm, out
=
None
)
-->
Tensor 返回一个张量,包含规范化后的各个子张量,使得沿着dim维划分的各子张量的p范数小于maxnorm。
注意 如果p范数的值小于maxnorm,则当前子张量不需要修改。
参数:
--
input (Tensor)
:输入张量
--p (float):范数的 p
--
dim (int)
:沿着此维切片,得到张量子集
--maxnorm (float)
:每个子张量的范数的最大值
--
out (Tensor, optional)
:结果张量
例子:
>>> x = torch.ones(3, 3)
>>> x[1].fill_(2)
>>> x[2].fill_(3)
>>> x
1 1 1
2 2 2
3 3 3
[torch.FloatTensor of size 3x3]
>>> torch.renorm(x, 1, 0, 5)
1.0000 1.0000 1.0000
1.6667 1.6667 1.6667
1.6667 1.6667 1.6667
[torch.FloatTensor of size 3x3]
torch
.
trace(
input
)
-->
float
返回输入
2
维矩阵对角线元素的和
(
迹
)
例子:
>>> x = torch.arange(1, 10).view(3, 3)
>>> x
1 2 3
4 5 6
7 8 9
[torch.FloatTensor of size 3x3]
>>> torch.trace(x)
15.0
torch
.
tril(
input
, k
=0
, out
=
None
)
-->
Tensor 返回一个张量out,包含输入矩阵(2D张量)的下三角部分,out其余部分被设为0。这里所说的下三角部分为矩阵指定对角线diagonal之上的元素。
参数k控制对角线:-k=0,主对角线 -k>0,主对角线之上 -k<0,主对角线之下。
参数:
--input (Tensor)
:输入张量
--k (int, optional):指定对角线
--
out (Tensor, optional)
:输出张量
例子:
>>> a = torch.randn(3,3)
>>> a
1.3225 1.7304 1.4573
-0.3052 -0.3111 -0.1809
1.2469 0.0064 -1.6250
[torch.FloatTensor of size 3x3]
>>> torch.tril(a)
1.3225 0.0000 0.0000
-0.3052 -0.3111 0.0000
1.2469 0.0064 -1.6250
[torch.FloatTensor of size 3x3]
>>> torch.tril(a, k=1)
1.3225 1.7304 0.0000
-0.3052 -0.3111 -0.1809
1.2469 0.0064 -1.6250
[torch.FloatTensor of size 3x3]
>>> torch.tril(a, k=-1)
0.0000 0.0000 0.0000
-0.3052 0.0000 0.0000
1.2469 0.0064 0.0000
[torch.FloatTensor of size 3x3]
torch
.
triu(
input
, k
=0
, out
=
None
)
-->
Tensor 返回一个张量,包含输入矩阵(2D张量)的上三角部分,其余部分被设为0.这里所说的上三角部分为矩阵指定对角线diagonal之上的元素。
参数k控制对角线:-k=0,主对角线 -k>0,主对线之上 -k<0 主对线之下
参数:
--input (Tensor):输入张量
--
k (int, optional)
:指定对角线
--out (Tensor, optional)
:输出张量
例子:
>>> a = torch.randn(3,3)
>>> a
1.3225 1.7304 1.4573
-0.3052 -0.3111 -0.1809
1.2469 0.0064 -1.6250
[torch.FloatTensor of size 3x3]
>>> torch.triu(a)
1.3225 1.7304 1.4573
0.0000 -0.3111 -0.1809
0.0000 0.0000 -1.6250
[torch.FloatTensor of size 3x3]
>>> torch.triu(a, k=1)
0.0000 1.7304 1.4573
0.0000 0.0000 -0.1809
0.0000 0.0000 0.0000
[torch.FloatTensor of size 3x3]
>>> torch.triu(a, k=-1)
1.3225 1.7304 1.4573
-0.3052 -0.3111 -0.1809
0.0000 0.0064 -1.6250
[torch.FloatTensor of size 3x3]