2024-09-19 20:30:09 发布
网友
我使用Sci kit Learn的TruncatedSVD算法对稀疏矩阵执行LSA。我希望转换后的稠密矩阵的数据类型为float16,而不是{}。我不想改变我的数据类型。我想让TruncatedSVD.fit()直接返回float16类型的内容-我该怎么做?在
TruncatedSVD
float16
TruncatedSVD.fit()
在应用转换之前,我尝试将原来的稀疏矩阵和TruncatedSVD.components_更改为float16,但输出数据类型仅为float32这是一个改进,但并不是我想要的那样。在
TruncatedSVD.components_
float32
在代码中,TruncatedSVD使用来自sklearn.utils的as_float_array()。as_float_array()的代码是here。在
sklearn.utils
as_float_array()
如您所见,文档指出
The new dtype will be np.float32 or np.float64
我想你可以把它修改成float16(也许完全去掉as_float_array的用法?),但我不知道会有什么后果。在
as_float_array
你应该考虑的一件事是,在这类数值算法中使用更大的变量(例如float64)有助于提高数值稳定性。如果你要处理一个非常大的矩阵,这一点尤其重要。如果使用float16,可能会因为数值问题而冒着得到错误结果的风险。在
在代码中,
TruncatedSVD
使用来自sklearn.utils
的as_float_array()
。as_float_array()
的代码是here。在如您所见,文档指出
我想你可以把它修改成float16(也许完全去掉
as_float_array
的用法?),但我不知道会有什么后果。在你应该考虑的一件事是,在这类数值算法中使用更大的变量(例如float64)有助于提高数值稳定性。如果你要处理一个非常大的矩阵,这一点尤其重要。如果使用float16,可能会因为数值问题而冒着得到错误结果的风险。在
相关问题 更多 >
编程相关推荐