gpt4 book ai didi

python - 获取 TruncatedSVD.transform() 返回 float16 而不是 float64

转载 作者:行者123 更新时间:2023-11-30 23:30:34 24 4
gpt4 key购买 nike

我正在使用 Sci-kit Learn 的 TruncatedSVD 算法在稀疏矩阵上执行 LSA。我希望转换后的密集矩阵具有数据类型 float16 而不是 float64。注意:我不想在转换后更改数据类型 - 那时我的计算机内存将不足。我希望 TruncatedSVD.fit() 直接返回 float16 类型的内容 - 我该怎么做?

在应用转换之前,我尝试将原始稀疏矩阵和 TruncatedSVD.components_ 更改为 float16,但输出数据类型仅为 float32 - 有所改进,但不完全是我想要的。

最佳答案

查看代码,TruncatedSVD 使用 sklearn.utils 中的 as_float_array()as_float_array() 的代码是 here .

如您所见,文档指出

The new dtype will be np.float32 or np.float64

我想你可以将它修改为 float16(也许完全删除 as_float_array 的使用?),但我不确定后果是什么。

您应该考虑的一件事是,在此类数值算法中使用较大的变量(例如 float64)有助于提高数值稳定性。如果您正在处理非常大的矩阵,这一点尤其重要。如果您使用 float16,您可能会面临由于数值问题而得到不正确结果的风险。

关于python - 获取 TruncatedSVD.transform() 返回 float16 而不是 float64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20499015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com