amazon-web-services - 如何使用 AWS AMI 管理机器学习中的海量数据
问题描述
我对 TensorFlow 和机器学习比较陌生。我有一个数据集运行成百万行,每行 > 2000 列。我正在考虑在 AWS AMI(C5 实例)上使用 Tensorflow。我不确定在哪里/如何存储这些庞大的数据。
1-我应该将其作为 csv 存储在 S3 存储桶中,还是应该将其加载到一些大数据系统中,然后使用 Apache spark 将其流式传输出来?你能在这里指导我吗?
2-另外,如果我必须清理这些数据,正确的方法是什么?也许使用 AWS Sagemaker 并使用 python/pandas(通过笔记本)来清理数据?这是正确的方法吗?
解决方案
我可以提供一些建议,但每个项目都是不同的,并使用最适合你的。
它是一次性的数据探索,还是您需要经常处理的事情?为了经常这样做,火花可能是正确的工具。Spark 在将数据转换/特征化/清理/预处理为更可用于 tensorflow(通常为稀疏格式)的数据方面非常棒。这里重要的是让你的 gpus 保持忙碌,为了实现这一点,你需要在使用 tf. 如果您没有小文件,S3 是一个很好的存储。
为了让 tensorflow 满意,大多数时候您需要对特征向量进行密集化。这样,您可以获取一小批记录并将稀疏特征向量转换为密集向量。只有这样你才能将它发送到 tf. 这是因为 gpus 在处理稀疏数据方面非常糟糕,并且像卷积这样的一些操作甚至不支持稀疏输入。(所有这一切都可以随时改变,因为它是一个活跃的研究领域)
推荐阅读
- oracle - 在“更新后”触发器中将值附加到 CLOB
- javascript - 当显示属性更改时,绘制失败图例
- elasticsearch - Elasticsearch NEST API:如何编写查询描述符以使用 Starts with 实现搜索?
- python - “[WARN:0] `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback” 运行代码时出错
- laravel - 如何修复损坏的 Laravel 链接到本地文件系统?
- ios - Apple TestFlight 应用是否仅在 TestFlight 应用中过期 90 天和/或在实际设备上过期 90 天?
- angular - Angular Jest 模拟订阅内容
- api - Flask:@app.errorhandler(500) 和 @app.errorhandler(exception) 之间的区别
- python - 将 JSON 解析为 CSV + 附加列
- r - 字符串匹配,用于在遇到特定单词模式时对评论进行分类