Gemm¶
Gemm - 13¶
版本¶
名称: Gemm (GitHub)
域名:
mainsince_version:
13函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本13起可用。
摘要¶
通用矩阵乘法: https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3
A’ = 如果 transA 则转置(A) 否则 A
B’ = 如果 transB 则转置(B) 否则 B
计算 Y = alpha * A’ * B’ + beta * C,其中输入张量 A 的形状为 (M, K) 或 (K, M),输入张量 B 的形状为 (K, N) 或 (N, K),输入张量 C 可广播为形状 (M, N),输出张量 Y 的形状为 (M, N)。如果属性 transA 非零,A 将在计算前进行转置,B 和 transB 同理。此运算符支持单向广播(张量 C 应可单向广播到张量 A * B);更多详情请查看 ONNX 中的广播。此运算符具有可选输入/输出。有关可选参数的表示,请参阅 ONNX IR。可以使用空字符串代替实际参数的名称来表示缺少的参数。尾随的可选参数(后面没有实际参数的参数)也可以直接省略。
属性¶
alpha - FLOAT (默认值为
'1.0'):输入张量 A * B 的乘积的标量乘数。
beta - FLOAT (默认为
'1.0'):输入张量C的标量乘数。
transA - INT (默认值为
'0'):是否应该转置A
transB - INT(默认值为
'0'):B是否应该被转置
输入¶
在2到3个输入之间。
A (异质的) - T:
输入张量A。如果transA为0,A的形状应为(M, K);如果transA非零,A的形状应为(K, M)。
B(异质的) - T:
输入张量 B。如果 transB 为 0,B 的形状应为 (K, N);如果 transB 不为零,则形状应为 (N, K)。
C (可选, 异构) - T:
可选的输入张量C。如果未指定,则计算时假设C为标量0。C的形状应单向广播到(M, N)。
输出¶
Y (异构) - T:
输出形状为 (M, N) 的张量。
类型约束¶
T 在 (
tensor(bfloat16),tensor(double),tensor(float),tensor(float16),tensor(int32),tensor(int64),tensor(uint32),tensor(uint64)):将输入和输出类型限制为浮点/整数张量。
Gemm - 11¶
版本¶
名称: Gemm (GitHub)
域名:
mainsince_version:
11函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本11起可用。
摘要¶
通用矩阵乘法: https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3
A’ = 如果 transA 则转置(A) 否则 A
B’ = 如果 transB 则转置(B) 否则 B
计算 Y = alpha * A’ * B’ + beta * C,其中输入张量 A 的形状为 (M, K) 或 (K, M),输入张量 B 的形状为 (K, N) 或 (N, K),输入张量 C 可广播为形状 (M, N),输出张量 Y 的形状为 (M, N)。如果属性 transA 非零,A 将在计算前进行转置,B 和 transB 同理。此操作符支持单向广播(张量 C 应可单向广播到张量 A * B);更多详情请查看 ONNX 中的广播。此操作符具有可选输入/输出。有关可选参数的表示,请参阅 ONNX IR。可以使用空字符串代替实际参数的名称来表示缺少的参数。尾随的可选参数(后面没有实际参数的参数)也可以直接省略。
属性¶
alpha - FLOAT (默认值为
'1.0'):输入张量 A * B 的乘积的标量乘数。
beta - FLOAT (默认为
'1.0'):输入张量C的标量乘数。
transA - INT (默认值为
'0'):是否应该转置A
transB - INT(默认值为
'0'):B是否应该被转置
输入¶
在2到3个输入之间。
A (异质的) - T:
输入张量A。如果transA为0,A的形状应为(M, K);如果transA非零,A的形状应为(K, M)。
B(异质的) - T:
输入张量 B。如果 transB 为 0,B 的形状应为 (K, N);如果 transB 不为零,则形状应为 (N, K)。
C (可选, 异构) - T:
可选的输入张量C。如果未指定,则计算时假设C为标量0。C的形状应单向广播到(M, N)。
输出¶
Y (异构) - T:
输出形状为 (M, N) 的张量。
类型约束¶
T 在 (
tensor(double),tensor(float),tensor(float16),tensor(int32),tensor(int64),tensor(uint32),tensor(uint64)):将输入和输出类型限制为浮点/整数张量。
Gemm - 9¶
版本¶
名称: Gemm (GitHub)
域名:
mainsince_version:
9函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本9起可用。
总结¶
通用矩阵乘法: https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3
A’ = 如果 transA 则转置(A) 否则 A
B’ = 如果 transB 则转置(B) 否则 B
计算 Y = alpha * A’ * B’ + beta * C,其中输入张量 A 的形状为 (M, K) 或 (K, M), 输入张量 B 的形状为 (K, N) 或 (N, K),输入张量 C 可以广播为形状 (M, N), 输出张量 Y 的形状为 (M, N)。如果属性 transA 非零,A 将在计算之前进行转置,B 和 transB 同理。 此操作符支持单向广播(张量 C 应能单向广播到张量 A * B);更多详情请查看 Broadcasting in ONNX。
属性¶
alpha - FLOAT (默认值为
'1.0'):输入张量 A * B 的乘积的标量乘数。
beta - FLOAT (默认为
'1.0'):输入张量C的标量乘数。
transA - INT (默认值为
'0'):是否应该转置A
transB - INT(默认值为
'0'):B是否应该被转置
输入¶
A (异质的) - T:
输入张量A。如果transA为0,A的形状应为(M, K);如果transA非零,A的形状应为(K, M)。
B(异质的) - T:
输入张量 B。如果 transB 为 0,B 的形状应为 (K, N);如果 transB 不为零,则形状应为 (N, K)。
C (异构) - T:
输入张量 C。C 的形状应该是单向可广播到 (M, N)。
输出¶
Y (异构) - T:
输出形状为 (M, N) 的张量。
类型约束¶
T 在 (
tensor(double),tensor(float),tensor(float16),tensor(int32),tensor(int64),tensor(uint32),tensor(uint64)):将输入和输出类型限制为浮点/整数张量。
Gemm - 7¶
版本¶
名称: Gemm (GitHub)
域名:
mainsince_version:
7函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本7起可用。
摘要¶
通用矩阵乘法: https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3
A’ = 如果 transA 则转置(A) 否则 A
B’ = 如果 transB 则转置(B) 否则 B
计算 Y = alpha * A’ * B’ + beta * C,其中输入张量 A 的形状为 (M, K) 或 (K, M), 输入张量 B 的形状为 (K, N) 或 (N, K),输入张量 C 可以广播为形状 (M, N), 输出张量 Y 的形状为 (M, N)。如果属性 transA 非零,A 将在计算前进行转置,B 和 transB 同理。 此操作符支持单向广播(张量 C 应能单向广播到张量 A * B);更多详情请查看 Broadcasting in ONNX。
属性¶
alpha - FLOAT (默认值为
'1.0'):输入张量 A * B 的乘积的标量乘数。
beta - FLOAT (默认为
'1.0'):输入张量C的标量乘数。
transA - INT (默认值为
'0'):是否应该转置A
transB - INT(默认值为
'0'):B是否应该被转置
输入¶
A (异质的) - T:
输入张量A。如果transA为0,A的形状应为(M, K);如果transA非零,A的形状应为(K, M)。
B(异质的) - T:
输入张量 B。如果 transB 为 0,B 的形状应为 (K, N);如果 transB 不为零,则形状应为 (N, K)。
C (异构) - T:
输入张量 C。C 的形状应该是单向可广播到 (M, N)。
输出¶
Y (异构) - T:
输出形状为 (M, N) 的张量。
类型约束¶
T 在 (
tensor(double),tensor(float),tensor(float16)) 中:将输入和输出类型限制为浮点张量。
Gemm - 6¶
版本¶
名称: Gemm (GitHub)
域名:
mainsince_version:
6函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本6起可用。
摘要¶
通用矩阵乘法: https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 计算 Y = alpha * A * B + beta * C,其中输入张量 A 的维度为 (M X K),输入张量 B 的维度为 (K X N),输入张量 C 和输出张量 Y 的维度为 (M X N)。 如果属性 broadcast 不为零,输入张量 C 将被广播以匹配维度要求。如果属性 transA 不为零,A 将在计算前进行转置,B 和 transB 同理。
属性¶
alpha - FLOAT (默认值为
'1.0'):输入张量 A * B 的乘积的标量乘数,默认值为 1.0。
beta - FLOAT (默认为
'1.0'):输入张量C的标量乘数,默认值为1.0。
broadcast - INT (默认为
'0'):是否应广播C
transA - INT (默认值为
'0'):是否应该转置A
transB - INT(默认值为
'0'):B是否应该被转置
输入¶
A (异质的) - T:
输入张量 A
B(异质的) - T:
输入张量 B
C (异构) - T:
输入张量 C
输出¶
Y (异构) - T:
输出张量。
类型约束¶
T 在 (
tensor(double),tensor(float),tensor(float16)) 中:将输入和输出类型限制为浮点张量。
Gemm - 1¶
版本¶
名称: Gemm (GitHub)
域名:
mainsince_version:
1函数:
Falsesupport_level:
SupportType.COMMON形状推断:
False
此版本的运算符自版本1起可用。
摘要¶
通用矩阵乘法: https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 计算 Y = alpha * A * B + beta * C,其中输入张量 A 的维度为 (M X K),输入张量 B 的维度为 (K X N),输入张量 C 和输出张量 Y 的维度为 (M X N)。 如果属性 broadcast 非零,输入张量 C 将被广播以匹配维度要求。如果属性 transA 非零,A 将在计算前进行转置,B 和 transB 同理。
属性¶
alpha - FLOAT (默认值为
'1.0'):输入张量 A * B 的乘积的标量乘数,默认值为 1.0。
beta - FLOAT (默认为
'1.0'):输入张量C的标量乘数,默认值为1.0。
broadcast - INT (默认为
'0'):是否应广播C
transA - INT (默认值为
'0'):是否应该转置A
transB - INT(默认值为
'0'):B是否应该被转置
输入¶
A (异质的) - T:
输入张量 A
B(异质的) - T:
输入张量 B
C (异构) - T:
输入张量C,可以是原地操作。
输出¶
Y (异构) - T:
输出张量。
类型约束¶
T 在 (
tensor(double),tensor(float),tensor(float16)) 中:将输入和输出类型限制为浮点张量。