RecordIO: “MXNet RecordIO记录的头部…不以有效的魔术数字开头”

在Sagemaker中使用Linear Learner和MXNet RecordIO时,fit()运行了38分钟后,我得到了"数据集中位置5,089,840处的MXNet RecordIO记录的头部不以有效的魔术数字开头"的错误信息。

该文件是使用以下代码生成的。请注意,我尝试了两种上传到S3的方法。我也尝试了直接上传BytesIO以及上传文件,如下所示。

train_file = 'linear_train.data'f = io.BytesIO()smac.write_numpy_to_dense_tensor(f, train_X.astype('float32'), train_y.astype('float32'))f.seek(0) # 写入内容with open(train_file, "wb") as fl:    fl.write(f.getvalue())# 上传的替代方法# boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train', train_file)).upload_fileobj(f)boto3.client('s3').upload_file(train_file,                                  Bucket=bucket,                                  Key=os.path.join(prefix, 'train', train_file),                                  ExtraArgs={'ACL': 'bucket-owner-full-control'})

为了检查文件是否未损坏,我从S3下载了它,并简单地按以下方式读取它。

   record = MXRecordIO(fl, 'r')   while True:      item = record.read()      # 这里我们打印项目,当到达末尾时中断等。这确认了RecordIO是有效的。

所以,文件看起来是没问题的。

我如何运行Linear Learner呢?

这是错误消息:

如果有任何失败原因:ClientError: 无法读取数据通道'train'。请求的内容类型是'application/x-recordio-protobuf'。请验证数据是否与请求的内容类型匹配。(由MXNetError引起)引起的:[17:04:49] /opt/brazil-pkg-cache/packages/AIAlgorithmsCppLibs/AIAlgorithmsCppLibs-2.0.3446.0/AL2012/generic-flavor/src/src/aialgs/io/iterator_base.cpp:100:(输入错误)数据集中位置5,089,840处的MXNet RecordIO记录的头部不以有效的魔术数字开头。返回了10个堆栈跟踪条目:[bt] (0) /opt/amazon/lib/libaialgs.so(+0xbca0) [0x7f337885cca0][bt] (1) /opt/amazon/lib/libaialgs.so(+0xbffa) [0x7f337885cffa][bt] (2) /opt/amazon/lib/libaialgs.so(aialgs::iterator_base::Next()+0x4a6) [0x7f33788675e6][bt] (3) /opt/amazon/lib/libmxnet.so(MXDataIterNext+0x21) [0x7f3367272141][bt] (4) /opt/amazon/python2.7/lib/python2.7/lib-dynload/_ctypes.so(ffi_call_unix64+0x4c) [0x7f3378893958][bt] (5) /opt/amazon/python2.7/lib/python2.7/lib-dynload/_ctypes.so(ffi_call+0x15f) [0x7f33如果有任何失败原因:ClientError: 无法读取数据通道'train'。请求的内容类型是'application/x-recordio-protobuf'。请验证数据是否与请求的内容类型匹配。(由MXNetError引起)引起的:[17:04:49] /opt/brazil-pkg-cache/packages/AIAlgorithmsCppLibs/AIAlgorithmsCppLibs-2.0.3446.0/AL2012/generic-flavor/src/src/aialgs/io/iterator_base.cpp:100:(输入错误)数据集中位置5,089,840处的MXNet RecordIO记录的头部不以有效的魔术数字开头。返回了10个堆栈跟踪条目:[bt] (0) /opt/amazon/lib/libaialgs.so(+0xbca0) [0x7f337885cca0][bt] (1) /opt/amazon/lib/libaialgs.so(+0xbffa) [0x7f337885cffa][bt] (2) /opt/amazon/lib/libaialgs.so(aialgs::iterator_base::Next()+0x4a6) [0x7f33788675e6][bt] (3) /opt/amazon/lib/libmxnet.so(MXDataIterNext+0x21) [0x7f3367272141][bt] (4) /opt/amazon/python2.7/lib/python2.7/lib-dynload/_ctypes.so(ffi_call_unix64+0x4c) [0x7f3378893958][bt] (5) /opt/amazon/python2.7/lib/python2.7/lib-dynload/_ctypes.so(ffi_call+0x15f) [0x7f33

回答:

这是因为同一个S3文件夹中存在CSV文件和RecordIO文件。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注