AWS上的培训数据

时间:2019-09-23 10:49:18

标签: python amazon-web-services amazon-sagemaker

我对AWS比较陌生,我正在尝试分析kaggle上可用的信用欺诈数据集。通过查看链接“ https://aws.amazon.com/blogs/machine-learning/preprocess-input-data-before-making-predictions-using-amazon-sagemaker-inference-pipelines-and-scikit-learn/”中提到的示例,我正在使用它。我将信用卡数据集上传到了s3存储桶中,并完成了以下操作

import boto3 
import botocore 
import pandas as pd
import sagemaker
from sagemaker import get_execution_role 
role = get_execution_role() 
bucket = '<mybucket>' 
prefix = 'test'
key = 'creditcard.csv' 
data_location = 's3://{}/{}/train/{}'.format(bucket,prefix,key)  
output_location = 's3://{}/{}/output'.format(bucket, prefix)
containers = {
          <mycontainer>
          }
sess = sagemaker.Session()
linear = sagemaker.estimator.Estimator(containers[boto3.Session().region_name],
                                   role, 
                                   train_instance_count=1, 
                                   train_instance_type='ml.c4.xlarge',
                                   output_path=output_location,
                                   sagemaker_session=sess)
linear.set_hyperparameters(feature_dim=31,
                       predictor_type='binary_classifier',
                       mini_batch_size=50)
linear.fit({'train': data_location})

当我尝试运行此代码时,弹出错误消息,显示“训练通道为空或迷你批处理大小太大。请验证训练数据是否包含非空文件且迷你批处理大小少于每个培训主持人的记录数” 我的训练数据没有任何空文件。如何处理这个错误? *我从PC上传了数据集,并将其存储在名为test的文件夹中的存储桶中 *该容器是用于线性学习器的标准容器 *我想我无法将文件从s3存储桶连接到我创建的笔记本实例。谁能验证

1 个答案:

答案 0 :(得分:0)

请仔细检查传递给data_location调用的fit()变量的值,并确保它是您期望的值。您还应该使用aws cli(即aws s3 ls $data_location)进行检查。

如果一切正常,那么您需要帮助我们进行进一步调查。不幸的是,只有在我们获得失败的培训工作的详细信息的情况下,这才有可能。您可以在SageMaker论坛上发起对话:https://forums.aws.amazon.com/forum.jspa?forumID=285