我对Tensorflow和机器学习相对较新。我有一个数据集运行到百万行,每行有>2000 列。我正在考虑在AWS AMI(C5实例(上使用Tensorflow。我不确定在哪里/如何存储这些庞大的数据。
1-我应该将其作为csv存储在S3存储桶中,还是应该将其加载到某个大数据系统中,然后使用Apache Spark将其流式传输出去?你能在这里指导我吗?
2-另外,如果我必须清理这些数据,正确的方法是什么?也许使用 AWS Sagemaker 并使用 python/pandas(通过笔记本(来清理数据?这是正确的方法吗?
我可以给出一些建议,但每个项目都是不同的,并使用最适合您的方法。
是一次性数据探索还是您需要频繁处理的东西? 为了经常这样做,Spark可能是正确的工具。Spark 在转换/特征化/清理/预处理数据方面非常棒,可以将其转换为更可用于 tensorflow 的东西(通常为稀疏格式(。这里重要的是让你的 GPU 保持忙碌并实现这一目标,你需要在使用 tf 之前尽可能多地预处理。如果您没有小文件,S3 是一个很好的存储。
为了让 tensorflow 满意,大多数时候你需要使特征向量变密。通过这种方式,您可以获取一小批记录并将稀疏特征向量转换为密集向量。只有这样,您才能将其发送到tf。这是因为 GPU 在处理稀疏数据方面非常糟糕,并且卷积等某些操作甚至不支持稀疏输入。(所有这些都可以随时改变,因为它是一个活跃的研究领域(