numpy/pytorch 的量化向量

quantization vector with numpy/pytorch

我创建了如下量化值:{0.0, 0.5, 1.0} 并希望基于集合对向量进行量化。例如,给定向量 [0.1, 0.1, 0.9, 0.8, 0.6, 0.6] 将被转移到 [0.0, 0.0, 1.0, 1.0, 0.5, 0.5].

请指导我使用 python/numpy/pytorch 的最快方法。非常感谢!

使用map() and lambda()

您可以使用 round(x * 2) / 2

获得最接近 0.5 的舍入
a = [0.1, 0.1, 0.9, 0.8, 0.6, 0.6]

list(map(lambda x: round(x * 2) / 2, a))

输出:

[0.0, 0.0, 1.0, 1.0, 0.5, 0.5]