对于我正在处理的特定任务,我有一个大约 25 GB 的数据集。我仍在尝试几种预处理方法,并且肯定还没有我的数据的最终形式。我不确定解决此类问题的常见工作流程是什么,所以这就是我的想法:
- 使用 gcsfuse 将数据集从存储桶存储复制到 Compute Engine 机器 SSD(可能使用 50 GB 左右的 SSD)。
- 应用各种预处理操作作为实验。
- 使用 PyTorch 对本地磁盘 (SSD) 上存储的数据运行训练
- 如果成功,则使用 gcsfuse 将新处理的数据复制回存储桶。
- 上传结果并删除训练期间使用的永久磁盘。
替代方法是这样的:
- 使用 gcsfuse 的挂载目录对 Cloud Bucket 本身内的数据运行处理操作
- 使用存储空间非常有限的计算引擎实例,直接在挂载的 gcsfuse Bucket 目录上使用 PyTorch 运行训练。
- 上传结果并删除 Compute Engine 实例。
建议采用以下哪种方法?这会产生更少的费用,并且在运行此类操作时最常使用。是否有我在这里没有看到的不同工作流程?
最佳答案
在计费方面,费用是相同的,因为熔断操作的收费与任何其他云存储接口(interface)一样,根据 documentation 。在您的用例中,我不知道您将如何训练数据,但如果您对文件执行不止一项操作,最好将它们下载,在本地训练,然后上传最终结果,这将是 2对象操作。例如,如果您在训练期间对文件进行多次更改或读取,则每个操作都将是一个对象操作。在工作流程方面,建议的工作流程对我来说看起来不错。
关于google-cloud-platform - PyTorch 的云存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51639141/