pymc.math.clip#

pymc.math.clip = Elemwise(scalar_op=clip,inplace_pattern=<frozendict {}>)[源代码]#

将 x 限制在最小值和最大值之间。

注意,当 x 等于边界时,输出被认为是 x,因此在这些点上,成本相对于输出的梯度将传播到 x,而不是 minmax。换句话说,在这些点上,相对于 x 的梯度将等于相对于输出的梯度,而相对于 minmax 的梯度将为零。

将标量 Op 泛化到张量。

所有输入必须具有相同的维度数量。当执行 Op 时,对于每个维度,每个输入在该维度的大小必须相同。作为一种特殊情况,它也可以是1,但前提是输入的 broadcastable 标志在该维度为 True。在这种情况下,张量在该维度上(实际上)被复制以匹配其他维度的大小。

输出的数据类型与被泛化到张量的标量 Op 的数据类型相同。特别是,如果输出的计算是在输入上就地进行的,那么输出类型必须与相应的输入类型相同(参见 ScalarOp 的文档以获取关于控制输出类型的帮助)

注释

-Elemwise(add): 表示张量上的 + 操作 x + y -Elemwise(add, {0 : 0}): 表示 += 操作 x += y -Elemwise(add, {0 : 1}): 表示在第二个参数上的 += 操作 y += x -Elemwise(mul)(np.random.random((10, 5)), np.random.random((1, 5))): 第二个输入沿着第一个维度扩展以匹配第一个输入 -Elemwise(true_div)(np.random.random(10, 5), np.random.random(10, 1)): 同上,但沿着第二个维度 -Elemwise(int_div)(np.random.random((1, 5)), np.random.random((10, 1))): 输出大小为 (10, 5) -Elemwise(log)(np.random.random((3, 4, 5)))