absolute
functionkeras.ops.absolute(x)
计算元素的绝对值.
keras.ops.abs
是此函数的简写.
参数: x: 输入张量.
返回:
一个包含 x
中每个元素绝对值的数组.
示例:
>>> x = keras.ops.convert_to_tensor([-1.2, 1.2])
>>> keras.ops.absolute(x)
array([1.2, 1.2], dtype=float32)
add
functionkeras.ops.add(x1, x2)
逐元素相加参数.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
包含 x1
和 x2
逐元素和的张量.
示例:
>>> x1 = keras.ops.convert_to_tensor([1, 4])
>>> x2 = keras.ops.convert_to_tensor([5, 6])
>>> keras.ops.add(x1, x2)
array([6, 10], dtype=int32)
keras.ops.add
也支持广播形状:
>>> x1 = keras.ops.convert_to_tensor(
... [[5, 4],
... [5, 6]]
... )
>>> x2 = keras.ops.convert_to_tensor([5, 6])
>>> keras.ops.add(x1, x2)
array([[10 10]
[10 12]], shape=(2, 2), dtype=int32)
all
functionkeras.ops.all(x, axis=None, keepdims=False)
测试沿给定轴的所有数组元素是否评估为 True
.
参数:
x: 输入张量.
axis: 一个整数或整数的元组,表示沿其执行逻辑与归约的轴.默认
(axis=None
) 是对输入数组的所有维度执行逻辑与.axis
可以是负数,在这种情况下,它从最后一个轴计数到第一个轴.
keepdims: 如果为 True
,被归约的轴在结果中保留为大小为1的维度.使用此选项,结果将
正确地广播到输入数组.默认为 False
.
返回:
包含沿 axis
的逻辑与归约的张量.
示例:
>>> x = keras.ops.convert_to_tensor([True, False])
>>> keras.ops.all(x)
array(False, shape=(), dtype=bool)
>>> x = keras.ops.convert_to_tensor([[True, False], [True, True]])
>>> keras.ops.all(x, axis=0)
array([ True False], shape=(2,), dtype=bool)
keepdims=True
输出一个维度被归约为1的张量.
>>> x = keras.ops.convert_to_tensor([[True, False], [True, True]])
>>> keras.ops.all(x, keepdims=True)
array([[False]], shape=(1, 1), dtype=bool)
amax
functionkeras.ops.amax(x, axis=None, keepdims=False)
返回一个数组或沿某个轴的最大值.
参数:
x: 输入张量.
axis: 计算最大值的轴.
默认情况下(axis=None
),在输入数组的所有维度中找到最大值.
keepdims: 如果为True
,被减少的轴将保留在结果中,作为广播到原始输入张量大小的维度.默认为False
.
返回:
一个包含最大值的数组.如果axis=None
,结果是一个标量值,表示整个数组中的最大元素.如果指定了axis
,结果是一个包含指定轴上最大值的数组.
示例:
>>> x = keras.ops.convert_to_tensor([[1, 3, 5], [2, 3, 6]])
>>> keras.ops.amax(x)
array(6, dtype=int32)
>>> x = keras.ops.convert_to_tensor([[1, 6, 8], [1, 5, 2]])
>>> keras.ops.amax(x, axis=0)
array([1, 6, 8], dtype=int32)
>>> x = keras.ops.convert_to_tensor([[1, 6, 8], [1, 5, 2]])
>>> keras.ops.amax(x, axis=1, keepdims=True)
array([[8], [5]], dtype=int32)
amin
functionkeras.ops.amin(x, axis=None, keepdims=False)
返回数组的最小值或沿某个轴的最小值.
参数:
x: 输入张量.
axis: 计算最小值的轴.
默认情况下(axis=None
),在输入数组的所有维度中查找最小值.
keepdims: 如果为True
,被减少的轴将保留在结果中,作为广播到原始输入张量大小的维度.默认为False
.
返回:
包含最小值的数组.如果axis=None
,结果是一个标量值,表示整个数组中的最小元素.如果指定了axis
,结果是沿指定轴的最小值数组.
示例:
>>> x = keras.ops.convert_to_tensor([1, 3, 5, 2, 3, 6])
>>> keras.ops.amin(x)
array(1, dtype=int32)
>>> x = keras.ops.convert_to_tensor([[1, 6, 8], [7, 5, 3]])
>>> keras.ops.amin(x, axis=0)
array([1,5,3], dtype=int32)
>>> x = keras.ops.convert_to_tensor([[1, 6, 8], [7, 5, 3]])
>>> keras.ops.amin(x, axis=1, keepdims=True)
array([[1],[3]], dtype=int32)
any
functionkeras.ops.any(x, axis=None, keepdims=False)
测试沿给定轴的任何数组元素是否评估为 True
.
参数:
x: 输入张量.
axis: 一个整数或整数的元组,表示沿其执行逻辑或归约的轴.
默认 (axis=None
) 是对输入数组的所有维度执行逻辑或.
axis
可以是负数,在这种情况下,它从最后一个轴计数到第一个轴.
keepdims: 如果为 True
,被归约的轴在结果中保留为大小为1的维度.
使用此选项,结果将正确地与输入数组广播.默认为 False
.
返回:
包含沿 axis
的逻辑或归约的张量.
示例:
>>> x = keras.ops.convert_to_tensor([True, False])
>>> keras.ops.any(x)
array(True, shape=(), dtype=bool)
>>> x = keras.ops.convert_to_tensor([[True, False], [True, True]])
>>> keras.ops.any(x, axis=0)
array([ True True], shape=(2,), dtype=bool)
keepdims=True
输出一个维度被归约为1的张量.
>>> x = keras.ops.convert_to_tensor([[True, False], [True, True]])
>>> keras.ops.all(x, keepdims=True)
array([[False]], shape=(1, 1), dtype=bool)
append
functionkeras.ops.append(x1, x2, axis=None)
将张量 x2
附加到张量 x1
的末尾.
参数:
x1: 第一个输入张量.
x2: 第二个输入张量.
axis: 沿此轴将张量 x2
附加到张量 x1
.
如果为 None
,则在使用前将两个张量展平.
返回:
一个张量,包含 x2
的值附加到 x1
的值.
示例:
>>> x1 = keras.ops.convert_to_tensor([1, 2, 3])
>>> x2 = keras.ops.convert_to_tensor([[4, 5, 6], [7, 8, 9]])
>>> keras.ops.append(x1, x2)
array([1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=int32)
当指定 axis
时,x1
和 x2
必须具有兼容的形状.
>>> x1 = keras.ops.convert_to_tensor([[1, 2, 3], [4, 5, 6]])
>>> x2 = keras.ops.convert_to_tensor([[7, 8, 9]])
>>> keras.ops.append(x1, x2, axis=0)
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype=int32)
>>> x3 = keras.ops.convert_to_tensor([7, 8, 9])
>>> keras.ops.append(x1, x3, axis=0)
Traceback (most recent call last):
...
TypeError: 无法连接具有不同维数数组的数组: 得到 (2, 3), (3,).
arange
functionkeras.ops.arange(start, stop=None, step=1, dtype=None)
返回给定区间内均匀间隔的值.
arange
可以调用不同数量的位置参数:
* arange(stop)
:值在半开区间内生成
[0, stop)
(换句话说,区间包括起始值但不包括终止值).
* arange(start, stop)
:值在半开区间内生成
[start, stop)
.
* arange(start, stop, step)
:值在半开区间内生成
[start, stop)
,值之间的间隔由 step 给出.
参数:
start:整数或实数,表示区间的起始.区间包括此值.
stop:整数或实数,表示区间的结束.区间不包括此值,除非在某些情况下
step
不是整数且浮点数舍入影响 out
的长度.默认为 None
.
step:整数或实数,表示值之间的间隔.对于任何输出 out
,这是两个相邻值之间的距离,
out[i+1] - out[i]
.默认步长为 1.如果 step
被指定为位置参数,start
也必须给出.
dtype:输出数组的类型.如果未给出 dtype
,则从其他输入参数推断数据类型.
返回:
均匀间隔值的张量.
对于浮点数参数,结果的长度为
ceil((stop - start)/step)
.由于浮点数溢出,此规则可能导致 out 的最后一个元素大于 stop.
示例:
>>> keras.ops.arange(3)
array([0, 1, 2], dtype=int32)
>>> keras.ops.arange(3.0)
array([0., 1., 2.], dtype=float32)
>>> keras.ops.arange(3, 7)
array([3, 4, 5, 6], dtype=int32)
>>> keras.ops.arange(3, 7, 2)
array([3, 5], dtype=int32)
arccos
functionkeras.ops.arccos(x)
三角函数的反余弦,逐元素计算.
如果 y = cos(x)
,那么 x = arccos(y)
.
参数: x: 输入张量.
返回:
在单位圆上与给定 x 坐标相交的光线的角度张量,以弧度表示 [0, pi]
.
示例:
>>> x = keras.ops.convert_to_tensor([1, -1])
>>> keras.ops.arccos(x)
array([0.0, 3.1415927], dtype=float32)
arccosh
functionkeras.ops.arccosh(x)
反双曲余弦,逐元素计算.
参数: x: 输入张量.
返回: 与x形状相同的输出张量.
示例:
>>> x = keras.ops.convert_to_tensor([10, 100])
>>> keras.ops.arccosh(x)
array([2.993223, 5.298292], dtype=float32)
arcsin
functionkeras.ops.arcsin(x)
反正弦,逐元素计算.
参数: x: 输入张量.
返回:
一个张量,包含x
中每个元素的反正弦值,以弧度表示,并在闭区间[-pi/2, pi/2]
内.
示例:
>>> x = keras.ops.convert_to_tensor([1, -1, 0])
>>> keras.ops.arcsin(x)
array([ 1.5707964, -1.5707964, 0.], dtype=float32)
arcsinh
functionkeras.ops.arcsinh(x)
元素逐个的反双曲正弦.
参数: x: 输入张量.
返回:
与x
形状相同的输出张量.
示例:
>>> x = keras.ops.convert_to_tensor([1, -1, 0])
>>> keras.ops.arcsinh(x)
array([0.88137364, -0.88137364, 0.0], dtype=float32)
arctan
functionkeras.ops.arctan(x)
三角函数的反切函数,逐元素计算.
参数: x: 输入张量.
返回:
每个元素在x
中的反切函数值的张量,区间为[-pi/2, pi/2]
.
示例:
>>> x = keras.ops.convert_to_tensor([0, 1])
>>> keras.ops.arctan(x)
array([0., 0.7853982], dtype=float32)
arctan2
functionkeras.ops.arctan2(x1, x2)
逐元素计算 x1/x2
的反正切,并正确选择象限.
象限(即分支)的选择使得 arctan2(x1, x2)
是从原点到点 (1, 0)
的射线与从原点到点 (x2, x1)
的射线之间的有符号角度(以弧度为单位).(注意角色的反转:"y 坐标”是第一个函数参数,"x 坐标”是第二个.)根据 IEEE 约定,此函数定义为 x2 = +/-0
以及 x1
和/或 x2
= +/-inf
的情况.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
以弧度为单位的角度张量,范围在 [-pi, pi]
.
示例: 考虑四个不同象限中的点:
>>> x = keras.ops.convert_to_tensor([-1, +1, +1, -1])
>>> y = keras.ops.convert_to_tensor([-1, -1, +1, +1])
>>> keras.ops.arctan2(y, x) * 180 / numpy.pi
array([-135., -45., 45., 135.], dtype=float32)
注意参数的顺序.arctan2
在 x2=0
以及在其他几个点上也有定义,获得范围在 [-pi, pi]
内的值:
>>> keras.ops.arctan2(
... keras.ops.array([1., -1.]),
... keras.ops.array([0., 0.]),
... )
array([ 1.5707964, -1.5707964], dtype=float32)
>>> keras.ops.arctan2(
... keras.ops.array([0., 0., numpy.inf]),
... keras.ops.array([+0., -0., numpy.inf]),
... )
array([0., 3.1415925, 0.7853982], dtype=float32)
arctanh
functionkeras.ops.arctanh(x)
反双曲正切,逐元素操作.
参数: x: 输入张量.
返回:
与x
形状相同的输出张量.
argmax
functionkeras.ops.argmax(x, axis=None, keepdims=False)
返回沿某个轴的最大值的索引.
参数:
x: 输入张量.
axis: 默认情况下,索引是进入展平的张量,否则沿指定的轴.
keepdims: 如果设置为 True
,减少的轴将保留在结果中,尺寸为1.默认为 False
.
返回:
索引张量.它的形状与 x
相同,但沿 axis
的维度被移除.
示例:
>>> x = keras.ops.arange(6).reshape(2, 3) + 10
>>> x
array([[10, 11, 12],
[13, 14, 15]], dtype=int32)
>>> keras.ops.argmax(x)
array(5, dtype=int32)
>>> keras.ops.argmax(x, axis=0)
array([1, 1, 1], dtype=int32)
>>> keras.ops.argmax(x, axis=1)
array([2, 2], dtype=int32)
argmin
functionkeras.ops.argmin(x, axis=None, keepdims=False)
返回沿轴的最小值的索引.
参数:
x: 输入张量.
axis: 默认情况下,索引是进入展平张量的,否则沿指定的轴.
keepdims: 如果设置为 True
,减少的轴将保留在结果中,作为大小为一的维度.默认为 False
.
返回:
索引张量.它与 x
具有相同的形状,但沿 axis
的维度被移除.
示例:
>>> x = keras.ops.arange(6).reshape(2, 3) + 10
>>> x
array([[10, 11, 12],
[13, 14, 15]], dtype=int32)
>>> keras.ops.argmin(x)
array(0, dtype=int32)
>>> keras.ops.argmin(x, axis=0)
array([0, 0, 0], dtype=int32)
>>> keras.ops.argmin(x, axis=1)
array([0, 0], dtype=int32)
argsort
functionkeras.ops.argsort(x, axis=-1)
返回可以对张量进行排序的索引.
参数:
x: 输入张量.
axis: 沿其排序的轴.默认为 -1
(最后一个轴).如果为 None
,则使用展平的张量.
返回:
沿指定 axis
对 x
进行排序的索引张量.
示例: 一维数组:
>>> x = keras.ops.array([3, 1, 2])
>>> keras.ops.argsort(x)
array([1, 2, 0], dtype=int32)
二维数组:
>>> x = keras.ops.array([[0, 3], [3, 2], [4, 5]])
>>> x
array([[0, 3],
[3, 2],
[4, 5]], dtype=int32)
>>> keras.ops.argsort(x, axis=0)
array([[0, 1],
[1, 0],
[2, 2]], dtype=int32)
>>> keras.ops.argsort(x, axis=1)
array([[0, 1],
[1, 0],
[0, 1]], dtype=int32)
array
functionkeras.ops.array(x, dtype=None)
创建一个张量.
参数: x: 输入张量. dtype: 张量所需的数据类型.
返回: 一个张量.
示例:
>>> keras.ops.array([1, 2, 3])
array([1, 2, 3], dtype=int32)
>>> keras.ops.array([1, 2, 3], dtype="float32")
array([1., 2., 3.], dtype=float32)
average
functionkeras.ops.average(x, axis=None, weights=None)
计算沿指定轴的加权平均值.
参数:
x: 输入张量.
axis: 整数,沿其进行平均的轴.默认值 axis=None
将对输入张量的所有元素进行平均.如果轴为负数,则从最后一个轴计数到第一个轴.
weights: 与 x
中的值相关联的权重张量.x
中的每个值根据其关联的权重对平均值做出贡献.权重数组可以是1-D(在这种情况下,其长度必须与沿给定轴的 a
的大小相同)或与 x
具有相同的形状.如果 weights=None
(默认值),则假定 x
中的所有数据具有等于1的权重.
1-D计算为:`avg = sum(a * weights) / sum(weights)`.
权重的唯一约束是 `sum(weights)` 不能为0.
返回: 返回沿指定轴的平均值.
示例:
>>> data = keras.ops.arange(1, 5)
>>> data
array([1, 2, 3, 4], dtype=int32)
>>> keras.ops.average(data)
array(2.5, dtype=float32)
>>> keras.ops.average(
... keras.ops.arange(1, 11),
... weights=keras.ops.arange(10, 0, -1)
... )
array(4., dtype=float32)
>>> data = keras.ops.arange(6).reshape((3, 2))
>>> data
array([[0, 1],
[2, 3],
[4, 5]], dtype=int32)
>>> keras.ops.average(
... data,
... axis=1,
... weights=keras.ops.array([1./4, 3./4])
... )
array([0.75, 2.75, 4.75], dtype=float32)
>>> keras.ops.average(
... data,
... weights=keras.ops.array([1./4, 3./4])
... )
Traceback (most recent call last):
...
ValueError: Axis must be specified when shapes of a and weights differ.
bincount
functionkeras.ops.bincount(x, weights=None, minlength=0, sparse=False)
统计整数张量中每个值的出现次数.
参数:
x: 输入张量.
它必须是1维的,并且只能包含非负整数.
weights: 权重张量.
它的长度必须与x
相同.默认值为None
.
如果指定,x
将按其加权,即如果n = x[i]
,
out[n] += weight[i]
而不是默认行为out[n] += 1
.
minlength: 一个整数.
默认值为0.如果指定,输出张量中至少会有
这个数量的箱子.如果大于max(x) + 1
,则输出中索引高于
max(x)
的每个值都设置为0.
sparse: 是否返回稀疏张量;适用于支持稀疏张量的后端.
返回:
1维张量,其中每个元素给出其索引值在x中的出现次数.其长度是max(x) + 1
和
minlength之间的最大值.
示例:
>>> x = keras.ops.array([1, 2, 2, 3], dtype="uint8")
>>> keras.ops.bincount(x)
array([0, 1, 2, 1], dtype=int32)
>>> weights = x / 2
>>> weights
array([0.5, 1., 1., 1.5], dtype=float64)
>>> keras.ops.bincount(x, weights=weights)
array([0., 0.5, 2., 1.5], dtype=float64)
>>> minlength = (keras.ops.max(x).numpy() + 1) + 2 # 6
>>> keras.ops.bincount(x, minlength=minlength)
array([0, 1, 2, 1, 0, 0], dtype=int32)
broadcast_to
functionkeras.ops.broadcast_to(x, shape)
广播一个张量到新的形状.
参数:
x: 要广播的张量.
shape: 所需张量的形状.单个整数 i
被解释为 (i,)
.
返回: 具有所需形状的张量.
示例:
>>> x = keras.ops.array([1, 2, 3])
>>> keras.ops.broadcast_to(x, (3, 3))
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
ceil
functionkeras.ops.ceil(x)
返回输入的上限,逐元素进行.
标量 x
的上限是最小的整数 i
,使得 i >= x
.
参数: x: 输入张量.
返回:
每个元素在 x
中的上限,具有浮点数据类型.
clip
functionkeras.ops.clip(x, x_min, x_max)
裁剪(限制)张量中的值.
给定一个区间,区间外的值会被裁剪到区间边缘.例如,如果指定了一个 [0, 1]
的区间,
小于 0 的值变为 0,大于 1 的值变为 1.
参数: x: 输入张量. x_min: 最小值. x_max: 最大值. 返回: 裁剪后的张量.
concatenate
functionkeras.ops.concatenate(xs, axis=0)
连接一系列张量沿现有轴.
参数:
xs: 要连接的张量序列.
axis: 张量将沿其连接的轴.默认为 0
.
返回: 连接后的张量.
conj
functionkeras.ops.conj(x)
keras.ops.conjugate
的简写.
conjugate
functionkeras.ops.conjugate(x)
返回逐元素的复共轭.
复数的复共轭是通过改变其虚部的符号得到的.
keras.ops.conj
是此函数的简写.
参数: x: 输入张量.
返回:
每个元素在 x
中的复共轭.
copy
functionkeras.ops.copy(x)
返回 x
的一个副本.
参数: x: 输入张量.
返回:
x
的一个副本.
cos
functionkeras.ops.cos(x)
Cosine, element-wise.
参数: x: 输入张量.
返回: 相应的余弦值.
cosh
functionkeras.ops.cosh(x)
双曲余弦,逐元素计算.
参数: x:输入张量.
返回:
与x
形状相同的输出张量.
count_nonzero
functionkeras.ops.count_nonzero(x, axis=None)
计算沿给定axis
的x
中非零值的数量.
如果没有指定轴,则计算张量中所有非零值的数量.
参数:
x: 输入张量.
axis: 沿其计算非零值数量的轴或轴的元组.默认为None
.
返回: int 或 int 的张量.
示例:
>>> x = keras.ops.array([[0, 1, 7, 0], [3, 0, 2, 19]])
>>> keras.ops.count_nonzero(x)
5
>>> keras.ops.count_nonzero(x, axis=0)
array([1, 1, 2, 1], dtype=int64)
>>> keras.ops.count_nonzero(x, axis=1)
array([2, 3], dtype=int64)
cross
functionkeras.ops.cross(x1, x2, axisa=-1, axisb=-1, axisc=-1, axis=None)
返回两个(数组)向量的叉积.
在 R^3 中,x1
和 x2
的叉积是一个垂直于 x1
和 x2
的向量.如果 x1
和 x2
是向量数组,则这些向量由 x1
和 x2
的最后一个轴定义,默认情况下,这些轴可以有 2 或 3 维.
当 x1
或 x2
的维度为 2 时,假设输入向量的第三个分量为零,并相应地计算叉积.
在两个输入向量都具有维度 2 的情况下,返回叉积的 z 分量.
参数:
x1: 第一个向量(组)的分量.
x2: 第二个向量(组)的分量.
axisa: 定义向量(组)的 x1
轴.默认为 -1
.
axisb: 定义向量(组)的 x2
轴.默认为 -1
.
axisc: 包含叉积向量(组)的结果轴.如果两个输入向量都具有维度 2,则忽略,因为返回值是标量.默认为最后一个轴.
axis: 如果定义,定义向量(组)和叉积(组)的 x1
、x2
和结果轴.覆盖 axisa
、axisb
和 axisc
.
注意:
Torch 后端不支持二维向量,也不支持 axisa
、axisb
和 axisc
参数.请使用 axis
代替.
返回: 向量叉积(组).
cumprod
functionkeras.ops.cumprod(x, axis=None, dtype=None)
返回沿给定轴元素的累积乘积.
参数: x: 输入张量. axis: 计算累积乘积的轴. 默认情况下,输入被展平. dtype: 返回张量的数据类型.默认为x.dtype.
返回: 输出张量.
cumsum
functionkeras.ops.cumsum(x, axis=None, dtype=None)
返回沿给定轴的元素累积和.
参数: x: 输入张量. axis: 计算累积和的轴. 默认情况下,输入被展平. dtype: 返回张量的数据类型.默认为x.dtype.
返回: 输出张量.
diag
functionkeras.ops.diag(x, k=0)
提取对角线或构造对角线数组.
参数:
x: 输入张量.如果 x
是二维的,返回 x
的第 k 个对角线.
如果 x
是一维的,返回一个二维张量,其中 x
位于第 k 个对角线上.
k: 要考虑的对角线.默认为 0
.使用 k > 0
表示主对角线以上的对角线,
使用 k < 0
表示主对角线以下的对角线.
返回: 提取的对角线或构造的对角线张量.
示例:
>>> from keras.src import ops
>>> x = ops.arange(9).reshape((3, 3))
>>> x
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> ops.diag(x)
array([0, 4, 8])
>>> ops.diag(x, k=1)
array([1, 5])
>>> ops.diag(x, k=-1)
array([3, 7])
>>> ops.diag(ops.diag(x)))
array([[0, 0, 0],
[0, 4, 0],
[0, 0, 8]])
diagonal
functionkeras.ops.diagonal(x, offset=0, axis1=0, axis2=1)
返回指定的对角线.
如果 x
是二维的,返回具有给定偏移量的 x
的对角线,即形式为 x[i, i+offset]
的元素集合.
如果 x
具有两个以上的维度,则由 axis1
和 axis2
指定的轴用于确定其对角线被返回的二维子数组.
结果数组的形状可以通过移除 axis1
和 axis2
并在右侧附加一个等于结果对角线大小的索引来确定.
参数:
x: 输入张量.
offset: 主对角线偏移的对角线.可以是正数或负数.默认为 0
(主对角线).
axis1: 用作二维子数组第一个轴的轴.默认为 0
(第一个轴).
axis2: 用作二维子数组第二个轴的轴.默认为 1
(第二个轴).
返回: 对角线张量.
示例:
>>> from keras.src import ops
>>> x = ops.arange(4).reshape((2, 2))
>>> x
array([[0, 1],
[2, 3]])
>>> x.diagonal()
array([0, 3])
>>> x.diagonal(1)
array([1])
>>> x = ops.arange(8).reshape((2, 2, 2))
>>> x
array([[[0, 1],
[2, 3]],
[[4, 5],
[6, 7]]])
>>> x.diagonal(0, 0, 1)
array([[0, 6],
[1, 7]])
diff
functionkeras.ops.diff(a, n=1, axis=-1)
计算沿给定轴的第n次离散差分.
第一次差分由沿给定轴的out[i] = a[i+1] - a[i]
给出,更高的差分通过递归使用diff
计算.
参数:
a: 输入张量.
n: 值被差分的次数.默认为1
.
axis: 计算离散差分的轴.默认为-1
(最后一个轴).
返回: 对角线张量.
示例:
>>> from keras.src import ops
>>> x = ops.convert_to_tensor([1, 2, 4, 7, 0])
>>> ops.diff(x)
array([ 1, 2, 3, -7])
>>> ops.diff(x, n=2)
array([ 1, 1, -10])
>>> x = ops.convert_to_tensor([[1, 3, 6, 10], [0, 5, 6, 8]])
>>> ops.diff(x)
array([[2, 3, 4],
[5, 1, 2]])
>>> ops.diff(x, axis=0)
array([[-1, 2, 0, -2]])
digitize
functionkeras.ops.digitize(x, bins)
返回x
中每个值所属的bin的索引.
参数: x: 输入数组,将被分bin. bins: bin的数组.它必须是一维的并且单调递增.
返回:
索引的输出数组,形状与x
相同.
示例:
>>> x = np.array([0.0, 1.0, 3.0, 1.6])
>>> bins = np.array([0.0, 3.0, 4.5, 7.0])
>>> keras.ops.digitize(x, bins)
array([1, 1, 2, 1])
divide
functionkeras.ops.divide(x1, x2)
分割参数逐元素.
keras.ops.true_divide
是此函数的别名.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
输出张量,逐元素的商 x1/x2
.
divide_no_nan
functionkeras.ops.divide_no_nan(x1, x2)
安全元素级除法,在分母为0时返回0.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
元素级商 x1/x2
,在 x2 为零处返回零.
dot
functionkeras.ops.dot(x1, x2)
两个张量的点积.
x1
和 x2
都是 1-D 张量,它是向量的内积(不带复共轭).x1
和 x2
都是 2-D 张量,它是矩阵乘法.x1
或 x2
是 0-D(标量),它等价于 x1 * x2
.x1
是 N-D 张量且 x2
是 1-D 张量,它是 x1
和 x2
在最后一个轴上的乘积和.x1
是 N-D 张量且 x2
是 M-D 张量(其中 M>=2
),
它是 x1
的最后一个轴和 x2
的倒数第二个轴上的乘积和:dot(x1, x2)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
.参数: x1: 第一个参数. x2: 第二个参数.
注意: Torch 后端不接受 0-D 张量作为参数.
返回:
x1
和 x2
的点积.
einsum
functionkeras.ops.einsum(subscripts, *operands)
评估操作数上的爱因斯坦求和约定.
参数:
subscripts: 指定求和的下标,以逗号分隔的下标标签列表.除非包含显式指示符
->
以及精确输出形式的下标标签,否则将执行隐式(经典爱因斯坦
求和)计算.
operands: 要计算爱因斯坦和的操作数.
返回: 基于爱因斯坦求和约定的计算结果.
示例:
>>> from keras.src import ops
>>> a = ops.arange(25).reshape(5, 5)
>>> b = ops.arange(5)
>>> c = ops.arange(6).reshape(2, 3)
矩阵的迹:
>>> ops.einsum("ii", a)
60
>>> ops.einsum(a, [0, 0])
60
>>> ops.trace(a)
60
提取对角线:
>>> ops.einsum("ii -> i", a)
array([ 0, 6, 12, 18, 24])
>>> ops.einsum(a, [0, 0], [0])
array([ 0, 6, 12, 18, 24])
>>> ops.diag(a)
array([ 0, 6, 12, 18, 24])
沿轴求和:
>>> ops.einsum("ij -> i", a)
array([ 10, 35, 60, 85, 110])
>>> ops.einsum(a, [0, 1], [0])
array([ 10, 35, 60, 85, 110])
>>> ops.sum(a, axis=1)
array([ 10, 35, 60, 85, 110])
对于更高维的张量,可以通过省略号对单个轴进行求和:
>>> ops.einsum("...j -> ...", a)
array([ 10, 35, 60, 85, 110])
>>> np.einsum(a, [..., 1], [...])
array([ 10, 35, 60, 85, 110])
计算矩阵转置或重新排序任意数量的轴:
>>> ops.einsum("ji", c)
array([[0, 3],
[1, 4],
[2, 5]])
>>> ops.einsum("ij -> ji", c)
array([[0, 3],
[1, 4],
[2, 5]])
>>> ops.einsum(c, [1, 0])
array([[0, 3],
[1, 4],
[2, 5]])
>>> ops.transpose(c)
array([[0, 3],
[1, 4],
[2, 5]])
矩阵向量乘法:
>>> ops.einsum("ij, j", a, b)
array([ 30, 80, 130, 180, 230])
>>> ops.einsum(a, [0, 1], b, [1])
array([ 30, 80, 130, 180, 230])
>>> ops.einsum("...j, j", a, b)
array([ 30, 80, 130, 180, 230])
empty
functionkeras.ops.empty(shape, dtype=None)
返回一个给定形状和类型,填充未初始化数据的张量.
参数: shape: 空张量的形状. dtype: 空张量的期望数据类型.
返回: 空张量.
equal
functionkeras.ops.equal(x1, x2)
返回 (x1 == x2)
逐元素比较的结果.
参数: x1: 要比较的张量. x2: 要比较的张量.
返回:
输出张量,x1
和 x2
逐元素比较的结果.
exp
functionkeras.ops.exp(x)
计算输入张量中所有元素的指数.
参数: x: 输入张量.
返回:
输出张量,x
中元素的逐元素指数.
expand_dims
functionkeras.ops.expand_dims(x, axis)
扩展张量的形状.
在扩展张量形状的 axis
位置插入一个新的轴.
参数: x: 输入张量. axis: 在扩展轴的位置插入新的轴.
返回: 输出张量,维度数量增加.
expm1
functionkeras.ops.expm1(x)
计算张量中所有元素的 exp(x) - 1
.
参数: x: 输入值.
返回: 输出张量,逐元素的指数减一.
eye
functionkeras.ops.eye(N, M=None, k=0, dtype=None)
返回一个对角线上为1,其他地方为0的二维张量.
参数:
N: 输出中的行数.
M: 输出中的列数.如果为None
,则默认为N
.
k: 对角线的索引:0(默认)指主对角线,正值指上对角线,负值指下对角线.
dtype: 返回张量的数据类型.
返回: 对角线上为1,其他地方为0的张量.
flip
functionkeras.ops.flip(x, axis=None)
反转张量中沿给定轴的元素顺序.
张量的形状保持不变,但元素的顺序被重新排序.
参数:
x: 输入张量.
axis: 要翻转张量的轴.默认情况下,axis=None
,将翻转输入张量的所有轴.
返回:
输出张量,其axis
的条目被反转.
floor
functionkeras.ops.floor(x)
返回输入的向下取整结果,逐元素进行.
标量 x
的向下取整结果是最大的整数 i
,使得 i <= x
.
参数: x: 输入张量.
返回:
输出张量,x
的逐元素向下取整结果.
floor_divide
functionkeras.ops.floor_divide(x1, x2)
返回小于或等于输入除法结果的最大整数.
参数: x1: 分子. x2: 分母.
返回:
输出张量, y = floor(x1/x2)
full
functionkeras.ops.full(shape, fill_value, dtype=None)
返回一个具有给定形状和类型的新张量,并用fill_value
填充.
参数: shape: 新张量的形状. fill_value: 填充值. dtype: 张量所需的数据类型.
返回: 输出张量.
full_like
functionkeras.ops.full_like(x, fill_value, dtype=None)
返回一个与给定张量具有相同形状和类型的完整张量.
参数: x: 输入张量. fill_value: 填充值. dtype: 覆盖结果的数据类型.
返回:
与x
具有相同形状和类型的fill_value
张量.
get_item
functionkeras.ops.get_item(x, key)
返回 x[key]
.
greater
functionkeras.ops.greater(x1, x2)
返回 x1 > x2
的元素级真值.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
输出张量,x1
和 x2
的元素级比较结果.
greater_equal
functionkeras.ops.greater_equal(x1, x2)
返回 x1 >= x2
的元素级真值.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
输出张量,x1
和 x2
的元素级比较结果.
hstack
functionkeras.ops.hstack(xs)
按顺序水平堆叠张量(按列).
这相当于对1维张量沿第一个轴进行连接, 以及对所有其他张量沿第二个轴进行连接.
参数: xs: 张量序列.
返回: 由给定张量堆叠形成的张量.
identity
functionkeras.ops.identity(n, dtype=None)
返回单位张量.
单位张量是一个在主对角线上为1,其他位置为0的方形张量.
参数:
n: 输出张量中行(和列)的数量,即n x n
.
dtype: 输出张量的数据类型.
返回: 单位张量.
imag
functionkeras.ops.imag(x)
返回复数参数的虚部.
参数: x: 输入张量.
返回: 复数参数的虚部.
isclose
functionkeras.ops.isclose(x1, x2, rtol=1e-05, atol=1e-08, equal_nan=False)
返回两个张量是否逐元素几乎相等.
参数:
x1: 第一个输入张量.
x2: 第二个输入张量.
rtol: 相对容差.
atol: 绝对容差.
equal_nan: 如果为 True
,逐元素的 NaN 被视为相等.
返回: 输出布尔张量.
isfinite
functionkeras.ops.isfinite(x)
返回一个张量是否在元素上是有限的.
实数值在它们不是NaN、不是正无穷大且不是负无穷大时是有限的.复数值在它们的实部和虚部都是有限时是有限的.
参数: x: 输入张量.
返回: 输出布尔张量.
isinf
functionkeras.ops.isinf(x)
测试逐元素地判断是否为正无穷或负无穷.
参数: x: 输入张量.
返回: 输出布尔张量.
isnan
functionkeras.ops.isnan(x)
测试逐元素地检查NaN并返回结果为布尔型张量.
参数: x: 输入张量.
返回: 输出布尔型张量.
less
functionkeras.ops.less(x1, x2)
返回 x1 < x2
的元素级真值.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
输出张量,x1
和 x2
的元素级比较结果.
less_equal
functionkeras.ops.less_equal(x1, x2)
返回 x1 <= x2
的元素级真值.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
输出张量,x1
和 x2
的元素级比较结果.
linspace
functionkeras.ops.linspace(
start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0
)
返回指定区间内均匀间隔的数字.
返回 num
个均匀间隔的样本,计算在区间 [start, stop]
上.
区间的端点可以选择性地排除.
参数:
start: 序列的起始值.
stop: 序列的结束值,除非 endpoint
设置为 False
.在这种情况下,序列由 num + 1
个均匀间隔的样本中除最后一个外的所有样本组成,因此 stop
被排除.注意,当 endpoint
为 False
时,步长会改变.
num: 要生成的样本数量.默认为 50
.必须为非负数.
endpoint: 如果为 True
,stop
是最后一个样本.否则,它不包括在内.默认为 True
.
retstep: 如果为 True
,返回 (samples, step)
,其中 step
是样本之间的间隔.
dtype: 输出张量的类型.
axis: 结果中存储样本的轴.仅在 start 或 stop 为类数组时相关.默认为 0
.
注意:
Torch 后端不支持 axis
参数.
返回:
一个均匀间隔数字的张量.
如果 retstep
为 True
,返回 (samples, step)
log
functionkeras.ops.log(x)
自然对数,逐元素计算.
参数: x: 输入张量.
返回:
输出张量,x
的逐元素自然对数.
log10
functionkeras.ops.log10(x)
返回输入张量按元素的以10为底的对数.
参数: x: 输入张量.
返回:
输出张量,x
按元素的以10为底的对数.
log1p
functionkeras.ops.log1p(x)
返回x
加一的自然对数,逐元素计算.
计算log(1 + x)
.
参数: x: 输入张量.
返回:
输出张量,逐元素计算1 + x
的自然对数.
log2
functionkeras.ops.log2(x)
x
的以 2 为底的对数,逐元素计算.
参数: x: 输入张量.
返回:
输出张量,逐元素计算 x
的以 2 为底的对数.
logaddexp
functionkeras.ops.logaddexp(x1, x2)
对输入的指数和的对数.
计算 log(exp(x1) + exp(x2))
.
参数: x1: 输入张量. x2: 输入张量.
返回: 输出张量,输入的指数和的对数的逐元素结果.
logical_and
functionkeras.ops.logical_and(x1, x2)
计算给定输入张量的元素逐位逻辑与.
零被视为False
,非零被视为True
.
参数: x1: 输入张量. x2: 输入张量.
返回: 输出张量,输入的元素逐位逻辑与.
logical_not
functionkeras.ops.logical_not(x)
计算给定输入张量的元素级非运算.
零被视为 False
,非零被视为 True
.
参数: x: 输入张量.
返回: 输出张量,输入张量的元素级逻辑非运算结果.
logical_or
functionkeras.ops.logical_or(x1, x2)
计算给定输入张量元素的逻辑或.
零被视为False
,非零被视为True
.
参数: x1: 输入张量. x2: 输入张量.
返回: 输出张量,输入的元素逻辑或.
logical_xor
functionkeras.ops.logical_xor(x1, x2)
计算 x1 XOR x2
的真值,逐元素进行.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回: 输出布尔张量.
logspace
functionkeras.ops.logspace(start, stop, num=50, endpoint=True, base=10, dtype=None, axis=0)
返回在对数尺度上均匀分布的数字.
在线性空间中,序列从 base ** start
开始,并以 base ** stop
结束(见下面的 endpoint
).
参数:
start: 序列的起始值.
stop: 序列的最终值,除非 endpoint
为 False
.
在这种情况下,num + 1
个值在对数区间上均匀分布,其中除了最后一个(长度为 num
的序列)之外的所有值都被返回.
num: 要生成的样本数.默认为 50
.
endpoint: 如果为 True
,stop
是最后一个样本.否则,不包括它.默认为 True
.
base: 对数空间的基数.默认为 10
.
dtype: 输出张量的类型.
axis: 结果中存储样本的轴.仅在 start 或 stop 是类数组时相关.
注意:
Torch 后端不支持 axis
参数.
返回: 一个在对数尺度上均匀分布的样本张量.
matmul
functionkeras.ops.matmul(x1, x2)
两个张量的矩阵乘积.
参数: x1: 第一个张量. x2: 第二个张量.
返回: 输出张量,输入张量的矩阵乘积.
max
functionkeras.ops.max(x, axis=None, keepdims=False, initial=None)
返回一个张量或沿某个轴的最大值.
参数:
x: 输入张量.
axis: 要操作的轴或轴.默认情况下,使用展平的输入.
keepdims: 如果设置为 True
,减少的轴将保留在结果中,尺寸为1.默认为 False
.
initial: 输出元素的最小值.默认为 None
.
返回:
x
的最大值.
maximum
functionkeras.ops.maximum(x1, x2)
逐元素计算x1
和x2
的最大值.
参数: x1: 第一个张量. x2: 第二个张量.
返回:
输出张量,逐元素计算x1
和x2
的最大值.
mean
functionkeras.ops.mean(x, axis=None, keepdims=False)
计算指定轴上的算术平均值.
参数:
x: 输入张量.
axis: 计算平均值的轴.默认情况下,计算展平张量的平均值.
keepdims: 如果设置为 True
,减少的轴将保留在结果中,尺寸为1.
返回: 包含平均值的输出张量.
median
functionkeras.ops.median(x, axis=None, keepdims=False)
计算指定轴的中位数.
参数:
x: 输入张量.
axis: 计算中位数的轴或轴.默认为axis=None
,即计算展平数组后的中位数.
keepdims: 如果设置为True
,则被减少的轴将保留在结果中,尺寸为1.
返回: 输出张量.
meshgrid
functionkeras.ops.meshgrid(*x, indexing="xy")
创建从坐标向量生成的坐标网格.
给定 N
个一维张量 T0, T1, ..., TN-1
作为输入,对应的长度为 S0, S1, ..., SN-1
,这将创建 N
个 N
维张量 G0, G1, ..., GN-1
,每个张量的形状为 (S0, ..., SN-1)
,其中输出 Gi
是通过将 Ti
扩展到结果形状构造的.
参数:
x: 表示网格坐标的一维张量.
indexing: "xy"
或 "ij"
."xy" 是笛卡尔坐标系;"ij"
是输出矩阵索引.默认为 "xy"
.
返回: N 个张量的序列.
示例:
>>> from keras.src import ops
>>> x = ops.array([1, 2, 3])
>>> y = ops.array([4, 5, 6])
>>> grid_x, grid_y = ops.meshgrid(x, y, indexing="ij")
>>> grid_x
array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3]])
>>> grid_y
array([[4, 5, 6],
[4, 5, 6],
[4, 5, 6]])
min
functionkeras.ops.min(x, axis=None, keepdims=False, initial=None)
返回一个张量或沿某个轴的最小值.
参数:
x: 输入张量.
axis: 要操作的轴.默认情况下,使用展平的输入.
keepdims: 如果设置为 True
,减少的轴将保留在结果中,尺寸为1.默认为 False
.
initial: 输出元素的最大值.默认为 None
.
返回:
x
的最小值.
minimum
functionkeras.ops.minimum(x1, x2)
逐元素取x1
和x2
的最小值.
参数: x1: 第一个张量. x2: 第二个张量.
返回:
输出张量,逐元素取x1
和x2
的最小值.
mod
functionkeras.ops.mod(x1, x2)
返回元素级别的除法余数.
参数: x1: 第一个张量. x2: 第二个张量.
返回: 输出张量,元素级别的除法余数.
moveaxis
functionkeras.ops.moveaxis(x, source, destination)
移动张量的轴到新位置.
其他轴保持其原始顺序.
参数: x: 需要重新排序轴的张量. source: 要移动的轴的原始位置.这些必须是唯一的. destination: 每个原始轴的目标位置.这些也必须是唯一的.
返回: 轴已移动的张量.
multiply
functionkeras.ops.multiply(x1, x2)
逐元素相乘参数.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
输出张量,x1
和 x2
的逐元素乘积.
nan_to_num
functionkeras.ops.nan_to_num(x, nan=0.0, posinf=None, neginf=None)
将NaN替换为零,将无穷大替换为大的有限数.
参数:
x: 输入数据.
nan: 可选的浮点数或整数.用于替换NaN
条目的值.
posinf: 可选的浮点数或整数.
用于替换正无穷大的值.
neginf: 可选的浮点数或整数.
用于替换负无穷大的值.
返回:
x
,其中非有限值已被替换.
ndim
functionkeras.ops.ndim(x)
返回一个张量的维度数.
参数: x: 输入张量.
返回:
x
中的维度数.
negative
functionkeras.ops.negative(x)
数值负号,逐元素操作.
参数: x: 输入张量.
返回:
输出张量, y = -x
.
nonzero
functionkeras.ops.nonzero(x)
返回非零元素的索引.
参数: x: 输入张量.
返回: 非零元素的索引.
norm
functionkeras.ops.norm(x, ord=None, axis=None, keepdims=False)
矩阵或向量范数.
此函数能够返回八种不同的矩阵范数之一,或无数种向量范数之一(如下所述),具体取决于 ord
参数的值.
参数:
x: 输入张量.
ord: 范数的阶数(参见下面的注释表).默认值为 None
.
axis: 如果 axis
是整数,它指定计算向量范数的 x
的轴.如果 axis
是 2 元组,它指定保存 2-D 矩阵的轴,并计算这些矩阵的矩阵范数.
keepdims: 如果设置为 True
,则结果中会保留被缩减的轴,尺寸为 1.
注意:
对于 ord < 1
的值,严格来说,结果不是一个数学上的 '范数',但在各种数值用途上可能仍然有用.可以计算以下范数:
- 对于矩阵:
- ord=None
: 弗罗贝尼乌斯范数
- ord="fro"
: 弗罗贝尼乌斯范数
- ord="nuc"
: 核范数
- ord=np.inf
: max(sum(abs(x), axis=1))
- ord=-np.inf
: min(sum(abs(x), axis=1))
- ord=0
: 不支持
- ord=1
: max(sum(abs(x), axis=0))
- ord=-1
: min(sum(abs(x), axis=0))
- ord=2
: 2-范数(最大奇异值)
- ord=-2
: 最小奇异值
- 其他: 不支持
- 对于向量:
- ord=None
: 2-范数
- ord="fro"
: 不支持
- ord="nuc"
: 不支持
- ord=np.inf
: max(abs(x))
- ord=-np.inf
: min(abs(x))
- ord=0
: sum(x != 0)
- ord=1
: 如下
- ord=-1
: 如下
- ord=2
: 如下
- ord=-2
: 如下
- 其他: sum(abs(x)**ord)**(1./ord)
返回: 矩阵或向量的范数.
示例:
>>> x = keras.ops.reshape(keras.ops.arange(9, dtype="float32") - 4, (3, 3))
>>> keras.ops.linalg.norm(x)
7.7459664
not_equal
functionkeras.ops.not_equal(x1, x2)
返回 (x1 != x2)
的逐元素结果.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
输出张量,x1
和 x2
的逐元素比较结果.
ones
functionkeras.ops.ones(shape, dtype=None)
返回一个给定形状和类型的新张量,填充为1.
参数: shape: 新张量的形状. dtype: 张量所需的数据类型.
返回: 具有给定形状和数据类型的1的张量.
ones_like
functionkeras.ops.ones_like(x, dtype=None)
返回一个与x
具有相同形状和类型的全一张量.
参数: x: 输入张量. dtype: 覆盖结果的数据类型.
返回:
一个与x
具有相同形状和类型的全一张量.
outer
functionkeras.ops.outer(x1, x2)
计算两个向量的外积.
给定两个向量 x1
和 x2
,外积为:
out[i, j] = x1[i] * x2[j]
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
x1
和 x2
的外积.
pad
functionkeras.ops.pad(x, pad_width, mode="constant", constant_values=None)
填充一个张量.
参数:
x: 需要填充的张量.
pad_width: 每个轴边缘填充的数值数量.
((before_1, after_1), ...(before_N, after_N))
为每个轴指定不同的填充宽度.
((before, after),)
产生相同的每个轴前后填充.
(pad,)
或 int
是所有轴的 before = after = pad
填充宽度的快捷方式.
mode: 以下之一 "constant"
, "edge"
, "linear_ramp"
,
"maximum"
, "mean"
, "median"
, "minimum"
,
"reflect"
, "symmetric"
, "wrap"
, "empty"
,
"circular"
.默认为 "constant"
.
constant_values: 如果 mode == "constant"
时填充的值.
默认为 0
.如果 mode != "constant"
且不为 None,则抛出 ValueError
.
注意:
Torch 后端仅支持模式 "constant"
, "reflect"
,
"symmetric"
和 "circular"
.
只有 Torch 后端支持 "circular"
模式.
注意:
Tensorflow 后端仅支持模式 "constant"
, "reflect"
和 "symmetric"
.
返回: 填充后的张量.
power
functionkeras.ops.power(x1, x2)
第一个张量的元素按第二个张量的元素幂次提升,逐元素操作.
参数: x1: 底数. x2: 指数.
返回:
输出张量,x1
中的底数按x2
中的指数提升.
prod
functionkeras.ops.prod(x, axis=None, keepdims=False, dtype=None)
返回给定轴上张量元素的乘积.
参数:
x: 输入张量.
axis: 执行乘积的轴或轴.默认情况下,axis=None
,将计算输入张量中所有元素的乘积.
keepdims: 如果设置为True
,则会在结果中保留被减少的轴,尺寸为1.
dtype: 返回张量的数据类型.
返回:
给定轴或轴上x
元素的乘积.
quantile
functionkeras.ops.quantile(x, q, axis=None, method="linear", keepdims=False)
计算指定轴上数据的第q个分位数.
参数:
x: 输入张量.
q: 要计算的分位数的概率或概率序列.值必须在0和1之间(包括0和1).
axis: 计算分位数的轴.默认为axis=None
,即在数组的展平版本上计算分位数.
method: 指定用于估计分位数的方法的字符串.可用方法有"linear"
、"lower"
、"higher"
、"midpoint"
和"nearest"
.默认为"linear"
.
如果所需的分位数位于两个数据点i < j
之间:
- "linear"
: i + (j - i) * fraction
,其中fraction是包围i
和j
的索引的小数部分.
- "lower"
: i
.
- "higher"
: j
.
- "midpoint"
: (i + j) / 2
- "nearest"
: i
或j
,取最近的那个.
keepdims: 如果设置为True
,则在结果中保留被减少的轴,尺寸为1.
返回:
分位数.如果q
是单个概率且axis=None
,则结果为标量.如果给出了多个概率水平,结果的第一个轴对应于分位数.其他轴是减少后的x
的轴.
ravel
functionkeras.ops.ravel(x)
返回一个连续的展平张量.
返回一个包含输入元素的一维张量.
参数: x: 输入张量.
返回: 输出张量.
real
functionkeras.ops.real(x)
返回复数参数的实部.
参数: x: 输入张量.
返回: 复数参数的实部.
reciprocal
functionkeras.ops.reciprocal(x)
返回参数的倒数,逐元素计算.
计算 1/x
.
参数: x: 输入张量.
返回:
输出张量,x
的逐元素倒数.
repeat
functionkeras.ops.repeat(x, repeats, axis=None)
重复张量中的每个元素.
参数: x: 输入张量. repeats: 每个元素的重复次数. axis: 沿其重复值的轴.默认情况下,使用展平的输入数组,并返回一个展平的输出数组.
返回: 输出张量.
reshape
functionkeras.ops.reshape(x, newshape)
Gives a new shape to a tensor without changing its data.
Arguments
Returns
重塑后的张量.
roll
functionkeras.ops.roll(x, shift, axis=None)
沿给定轴滚动张量元素.
超出最后一个位置的元素将在第一个位置重新引入.
参数: x: 输入张量. shift: 元素移动的位置数. axis: 元素移动的轴.默认情况下,数组在移动前会被展平,移动后会恢复原始形状.
返回: 输出张量.
round
functionkeras.ops.round(x, decimals=0)
Evenly round to the given number of decimals.
Arguments
0
.Returns
输出张量.
sign
functionkeras.ops.sign(x)
返回一个包含x
元素符号的张量.
参数: x: 输入张量.
返回:
与x
形状相同的输出张量.
sin
functionkeras.ops.sin(x)
三角函数正弦,逐元素计算.
参数: x: 输入张量.
返回:
与x
形状相同的输出张量.
sinh
functionkeras.ops.sinh(x)
双曲正弦,逐元素计算.
参数: x:输入张量.
返回:
与x
形状相同的输出张量.
size
functionkeras.ops.size(x)
返回张量中的元素数量.
参数: x: 输入张量.
返回:
x
中的元素数量.
sort
functionkeras.ops.sort(x, axis=-1)
对x
沿给定轴的元素进行升序排序.
参数:
x: 输入张量.
axis: 要排序的轴.如果为None
,则在排序前将张量展平.默认为-1
;即最后一个轴.
返回: 排序后的张量.
split
functionkeras.ops.split(x, indices_or_sections, axis=0)
分割一个张量为多个块.
参数:
x: 输入张量.
indices_or_sections: 如果是一个整数,N,张量将沿着axis
被分割成N个等分部分.如果是一个1维的排序整数数组,
数组的元素表示沿着axis
分割的索引.
axis: 沿着分割的轴.默认为0
.
注意: 使用Torch后端时,分割不一定导致等分.
返回: 一个张量列表.
sqrt
functionkeras.ops.sqrt(x)
返回一个张量逐元素的非负平方根.
参数: x: 输入张量.
返回:
输出张量,x
的非负平方根.
square
functionkeras.ops.square(x)
返回输入的逐元素平方.
参数: x: 输入张量.
返回:
输出张量,x
的平方.
squeeze
functionkeras.ops.squeeze(x, axis=None)
移除x
中长度为1的轴.
参数: x: 输入张量. axis: 选择形状中长度为1的条目的子集.
返回: 移除所有或部分长度为1的维度的输入张量.
stack
functionkeras.ops.stack(x, axis=0)
连接一系列张量沿一个新的轴.
axis
参数指定结果维度中新轴的索引.
参数:
x: 一个张量序列.
axis: 沿此轴堆叠.默认为0
.
返回: 堆叠后的张量.
std
functionkeras.ops.std(x, axis=None, keepdims=False)
计算指定轴上的标准差.
参数:
x: 输入张量.
axis: 计算标准差的轴.
默认是计算展平张量的标准差.
keepdims: 如果设置为 True
,减少的轴将保留在结果中,尺寸为1.
返回: 包含标准差值的输出张量.
subtract
functionkeras.ops.subtract(x1, x2)
逐元素减去参数.
参数: x1: 第一个输入张量. x2: 第二个输入张量.
返回:
输出张量,x1
和 x2
的逐元素差.
sum
functionkeras.ops.sum(x, axis=None, keepdims=False)
张量在给定轴上的和.
参数:
x: 输入张量.
axis: 计算和的轴.默认是计算展平张量的和.
keepdims: 如果设置为 True
,被减少的轴在结果中保留为大小为1的维度.
返回: 包含和的输出张量.
swapaxes
functionkeras.ops.swapaxes(x, axis1, axis2)
交换张量的两个轴.
参数: x: 输入张量. axis1: 第一个轴. axis2: 第二个轴.
返回: 交换轴后的张量.
take
functionkeras.ops.take(x, indices, axis=None)
沿轴从张量中提取元素.
参数: x: 源张量. indices: 要提取的值的索引. axis: 选择值的轴.默认情况下,使用展平的输入张量.
返回: 相应的值张量.
take_along_axis
functionkeras.ops.take_along_axis(x, indices, axis=None)
从x
中沿着给定的轴选择1-D indices
处的值.
参数: x: 源张量. indices: 要提取的值的索引. axis: 选择值的轴.默认情况下,使用展平的输入张量.
返回: 相应的值张量.
tan
functionkeras.ops.tan(x)
计算逐元素的正切值.
参数: x: 输入张量.
返回:
与x
形状相同的输出张量.
tanh
functionkeras.ops.tanh(x)
双曲正切,逐元素计算.
参数: x:输入张量.
返回:
与x
形状相同的输出张量.
tensordot
functionkeras.ops.tensordot(x1, x2, axes=2)
计算沿指定轴的张量点积.
参数:
x1: 第一个张量.
x2: 第二个张量.
axes: - 如果是一个整数,N,则对x1
的最后N个轴和x2
的前N个轴进行求和.相应的轴的大小必须匹配.
- 或者,一个轴列表,第一个序列应用于x1
,第二个应用于x2
.两个序列的长度必须相同.
返回: 输入张量的点积.
tile
functionkeras.ops.tile(x, repeats)
重复 x
由 repeats
给定的次数.
如果 repeats
的长度为 d
,结果将具有维度
max(d, x.ndim)
.
如果 x.ndim < d
,x
将被提升为 d 维,通过在前面添加
新轴.
如果 x.ndim > d
,repeats
将被提升为 x.ndim
,通过在前面添加 1.
参数:
x: 输入张量.
repeats: 沿每个轴重复 x
的次数.
返回: 平铺后的输出张量.
trace
functionkeras.ops.trace(x, offset=0, axis1=0, axis2=1)
返回张量对角线上的和.
如果 x
是二维的,则返回其给定偏移对角线上的和,即所有元素 x[i, i+offset]
的和.
如果 x
有多于两个维度,则由 axis1
和 axis2
指定的轴用于确定其迹的二维子数组.
结果张量的形状与 x
的形状相同,但去掉了 axis1
和 axis2
.
参数:
x: 输入张量.
offset: 对角线相对于主对角线的偏移量.可以是正数或负数.默认为 0
.
axis1: 用作二维子数组第一个轴的轴.默认为 0
(第一个轴).
axis2: 用作二维子数组第二个轴的轴.默认为 1
(第二个轴).
返回:
如果 x
是二维的,则返回对角线的和.如果 x
有更多维度,则返回沿对角线的和的张量.
transpose
functionkeras.ops.transpose(x, axes=None)
返回一个转置了axes
的张量.
参数:
x: 输入张量.
axes: 整数序列.x
的维度的排列.
默认情况下,轴的顺序会被反转.
返回:
x
的轴被置换后的结果.
tri
functionkeras.ops.tri(N, M=None, k=0, dtype=None)
返回一个在和对角线以下位置为1,其他位置为0的张量.
参数:
N: 张量中的行数.
M: 张量中的列数.
k: 数组填充的次对角线.
k = 0
是主对角线,而 k < 0
在其下方,k > 0
在其上方.默认值为0.
dtype: 返回张量的数据类型.默认值为 "float32".
返回:
其下三角填充为1,其他位置为0的张量.
T[i, j] == 1
对于 j <= i + k
,否则为0.
tril
functionkeras.ops.tril(x, k=0)
返回张量的下三角部分.
对于ndim
超过2的张量,tril
将应用于最后两个轴.
参数:
x: 输入张量.
k: 要清零元素的对角线.默认为0
,即主对角线.k < 0
在主对角线之下,k > 0
在主对角线之上.
返回:
x
的下三角部分,形状和数据类型与x
相同.
triu
functionkeras.ops.triu(x, k=0)
返回张量的上三角部分.
对于ndim
超过2的张量,triu
将应用于最后两个轴.
参数:
x: 输入张量.
k: 要清零元素的对角线下方.默认为0
,即主对角线.k < 0
在主对角线下方,k > 0
在主对角线上方.
返回:
x
的上三角部分,形状和数据类型与x
相同.
true_divide
functionkeras.ops.true_divide(x1, x2)
Alias for keras.ops.divide
.
var
functionkeras.ops.var(x, axis=None, keepdims=False)
计算指定轴上的方差.
参数:
x: 输入张量.
axis: 计算方差的轴.默认情况下,计算展平张量的方差.
keepdims: 如果设置为 True
,减少的轴将保留在结果中,尺寸为1.
返回: 包含方差的输出张量.
vdot
functionkeras.ops.vdot(x1, x2)
返回两个向量的点积.
如果第一个参数是复数,则使用第一个参数的复共轭进行点积计算.
多维张量在计算点积之前会被展平.
参数: x1: 第一个输入张量.如果为复数,则在计算点积之前取其复共轭. x2: 第二个输入张量.
返回: 输出张量.
vstack
functionkeras.ops.vstack(xs)
将张量按顺序垂直(行方向)堆叠.
参数: xs: 张量序列.
返回: 由给定张量堆叠形成的张量.
where
functionkeras.ops.where(condition, x1=None, x2=None)
返回根据condition
从x1
或x2
中选择的元素.
参数:
condition: 当为True
时,选择x1
,否则选择x2
.
x1: 当condition
为True
时从中选择的值.
x2: 当condition
为False
时从中选择的值.
返回:
一个张量,其中condition
为True
的元素来自x1
,
condition
为False
的元素来自x2
.
zeros
functionkeras.ops.zeros(shape, dtype=None)
返回一个给定形状和类型的新张量,填充为零.
参数: shape: 新张量的形状. dtype: 张量所需的数据类型.
返回: 具有给定形状和数据类型的零张量.
zeros_like
functionkeras.ops.zeros_like(x, dtype=None)
返回一个与x
具有相同形状和类型的零张量.
参数: x: 输入张量. dtype: 覆盖结果的数据类型.
返回:
一个与x
具有相同形状和类型的零张量.