分段线性函数在 numpy 中的全变分实现

Total variation implementation in numpy for a piecewise linear function

我想在 python 中使用 total variation,但找不到现有的实现。

假设我有一个包含有限数量元素的数组,使用 numpy 的实现是否简单如下:

import numpy as np

a = np.array([...], dtype=float)
tv = np.sum(np.abs(np.diff(a)))

我的主要疑问是如何在所有分区中计算 tv 的上界,以及是否仅绝对差之和就足以满足有限的浮点数组。

编辑:我的输入数组表示分段线性函数,因此整个分区集的上确界确实是连续点之间绝对差的总和。

是的,没错。

我想您对 Wikipedia page for total variation. Have a look at the more practical definition on the Wikipedia page for total variation denoising 上的数学定义感到困惑。

对于实际代码(甚至 Python)实现,请参见例如Tensorflow's total_variation(),尽管这是针对一张或多张(2D,彩色)图像,所以 TV 是针对行和列计算的,然后加在一起。