为使用 TensorFlow 2.0 构建的深度神经网络模型提供大数据预处理的解决方案?

数据挖掘 神经网络 张量流 数据清理 大数据 预处理
2022-02-26 07:36:08

目前我正在使用 Python、Numpy、pandas、scikit-learn 进行数据预处理(LabelEncoder、MinMaxScaler、fillna 等),然后将处理后的数据提供给使用 Tensorflow 2.0 构建的 DNN 模型。当数据小到足以容纳 PC 的 RAM 时,此输入管道可以满足我的需求。

现在我有一些大型数据集,超过 10GB,有些更大。我还计划在生产环境中部署模型,这意味着每天都会有新数据出现。对于 DNN 模型训练,有 tensorflow 2.0 的分布式策略。但是对于数据预处理,显然我不能在一台 PC 上在大型数据集上使用 pandas 和 scikitlearn。在我看来,我需要使用一个 for 循环来重复获取一小部分数据并将其用于训练?

我想知道人们通常在实验或生产环境中使用什么来进行大数据预处理? 我应该使用 Spark(PySpark) 和Tensorflow 输入管道吗?

2个回答

查看您的用例,Dask、H2O、Modin、Koalas 和 Vaex 更适合扩展 Pyspark 之外的数据预处理。它们具有类似于 pandas 的 API,因此移植现有代码会更容易。但是您需要为您的目标环境设置它们。

如果您的大部分数据和机器学习管道都使用 Python,那么适用于 Python 的 Dask 项目是一个非常好的候选者。它允许您将(某些类型的)数据帧操作扩展到数据集而不是内存。Dask 的好处是,如果需要,它也很容易按比例缩小。大多数代码都保留在 Python 中,您无需支付序列化开销(在 PySpark 中为 Python -> JVM 支付)。