我正在使用AWS Sagemaker在CSV数据集上运行线性回归。我进行了一些测试,并且我的示例数据集占整个数据集的10%,csv文件最终的大小为1.5 GB。
现在,我想运行完整的数据集,但是15 GB文件遇到了问题。当我用Gzip压缩文件时,它最终只有20 MB。但是,Sagemaker仅在“ Protobuf-Recordio”文件上支持Gzip。我知道我可以使用im2rec制作Recordio文件,但似乎打算将其用于图像分类的图像文件。我也不确定如何生成protobuf文件。
让事情变得更糟(?):)我正在Node中生成数据集。
我将非常感谢能为正确的方法提供一些指导。
答案 0 :(得分:0)
如果您愿意使用Python脚本来转换数据,此链接https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-preprocess-data-transform.html会提供有用的信息。
SDK中的实际代码为https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/amazon/common.py
基本上,您可以将CSV数据(分批加载)到NDArray中,以便可以写入多个文件,然后使用https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/amazon/common.py转换为Recordio-protobuf。您应该能够将带有Recordio-protobuf的缓冲区写入文件。
谢谢