2 个不稳定版本
0.2.0 | 2022年4月11日 |
---|---|
0.1.0 | 2022年4月11日 |
#7 in #smaller
348 每月下载次数
用于 5 个crate(通过 adder-codec-core)
12KB
178 行
numquant
将数字量化到更小的范围以节省带宽或内存。
期望输入浮点值在一个给定的范围内。超出此范围的值将被钳位。然后输入值将被量化到一个给定的整数范围。
例如,给定允许的范围 -1000.0 到 1000.0,以及量化范围 0 到 255(以适应一个字节),-1000.0 将量化为 0,1000.0 将量化为 255,介于两者之间的值将在 0 和 255 之间线性插值。
示例
此示例使用类型 Quantized<U8<0, 1000>>
,该类型将任何介于 0.0 和 1000.0 之间的浮点数转换为字节(其范围为 0 到 255)。一些精度会丢失,但可以恢复一个近似值。
let original = 500.0;
// Quantize the value into a byte.
// Quantization supports inputs between 0 and 1000.
let quantized = Quantized::<U8<0, 1000>>::from_f64(original);
// Convert it back to an f64
let dequantized = quantized.to_f64();
// The conversion isn't lossless, but the dequantized value is close to the original:
approx::assert_abs_diff_eq!(original, dequantized, epsilon = U8::<0, 1000>::max_error());
链接
依赖关系
~170KB