我有一些 (
N
) 个大小为 192 x 1
的向量当前存储为火炬张量。张量中的每个元素都是浮点数。这些 N
向量用于通过其相似性与参考向量进行比较。
现在,
N
可能非常大,因此这些向量在一段时间后开始实际消耗一些内存。因此,我想尝试一些量化方法来潜在地减少存储它们所需的内存。例如,通过使用更少的位来存储它们(以较低的精度为代价)。
有没有一种方便的方法来做到这一点,同时保持参考向量和
N
存储的向量之间的可比性?
我尝试过使用;
q_vec = torch.quantize_per_tensor_dynamic(vec, torch.quint8, True)
但是使用
getsizeof(x)
,大小仍然与量化之前相同。显然,我可能遗漏了一些东西或误解了这里的概念。任何朝着正确方向的推动都将受到高度赞赏。
不要使用 sys.getsizeof(q_vec),因为它将返回张量的常量值,您应该使用:
q_vec.element_size() * q_vec.nelement()
然后测量前后尺寸。