在实践中如何在软件中应用/模拟量化?例如,假设我想计算如果某个函数的参数中使用6位整数值而不是使用16位浮点值,那么我将在某个函数的输出中得到多少错误。如果这个问题很重要,我有兴趣将量化应用于神经网络等。
我对此很幼稚:要么以某种方式迫使计算机使用降低的位精度(在像Linux这样的通用OS上似乎不可行也不容易,但是我很想知道它是否在实践中完成),或通过将float的范围映射到单个整数值来人工模拟量化,其中整数值代表一个量化值。
我将C和python用作标记,因为只有您想用代码回答时,我才能理解那些语言。
答案 0 :(得分:0)
通常有三种方法:
当然,要进行分析,您必须了解计算方法并成为熟练的数学家。
要进行模拟,您仍然必须理解计算,因为您需要用模拟语言来重写它,但是您不必太擅长数学;-)
测试是最简单的,因为您既不需要了解计算也不需要深入的数学技能。在您的情况下,这应该是微不足道的:由于只有16位参数,因此您可以使用2 ^ 16 x 2 ^ 16 = 2 ^ 32次测试迭代来测试2个参数的所有组合...眨眼在现代处理器上。比较使用16位浮点数和6位整数的结果,并保留一些简单的统计信息(平均误差,最大误差等)。如果您有两个以上的参数,则可以通过尝试大量的随机输入来节省详尽的测试时间,否则使用相同的方法。