gpt4 book ai didi

csv - 来自 FSharp.Data 的 CSV typeprovider 的性能问题

转载 作者:行者123 更新时间:2023-12-04 15:43:46 25 4
gpt4 key购买 nike

我试图通过使用它来读取 CSV 文件来了解有关 FSharp.Data 项目的更多信息。 CSV 文件是 Kaggle 数字识别竞赛数据的简化版本。

当我读取包含 785 列和 113 行(包括标题行)的 CSV 文件时,以下两行代码执行得非常慢:

type trainingSet = CsvProvider<"Data/trainSmall.csv", ",", CacheRows=false>
let data = trainingSet.Load("Data/trainSmall.csv")

当我将第一行代码发送到 F# 交互时,它会在大约 10 秒内返回,而当我将第二行代码发送到 F# 交互时,它需要超过 5 分钟的时间才能交互提示回复。

我使用 F# 3.0 和 Xamarin Studio 在 2013 年配备 2.6 GHz I5 处理器和 16GB 内存的 MacBook Pro 上运行代码。我已经尝试过在同一硬件上的 VM 下运行 Windows7/VS2013 的相同实验。结果具有可比性。当我使用同一台机器并尝试用 R 做完全相同的事情时,它是如此之快,以至于我无法用普通 watch 计时。

请建议我正确使用 Fsharp.Data 的 CSV 类型提供程序!

最佳答案

我建议您不要为此使用 CsvProvider。您正在加载一个矩阵,因此您不会从推断每一列的类型中获得任何好处,因为它们都是相同的。您仍然可以通过 CsvFile 使用 F# Data 的 CSV 解析器。 CsvProvider 针对列数不多但行数可能很多的文件进行了优化。生成代码的方式将尝试在您的示例中生成一个包含 785 个元素的元组,这是行不通的

关于csv - 来自 FSharp.Data 的 CSV typeprovider 的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730130/

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