首页 > 解决方案 > AWS 上的训练数据

问题描述

我对 AWS 比较陌生,我正在尝试分析 kaggle 上可用的信用欺诈数据集。我正在通过查看链接“ https://aws.amazon.com/blogs/machine-learning/preprocess-input-data-before-making-predictions-using-amazon-sagemaker- ”中提到的示例来使用它推理管道和 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 存储桶连接到我创建的笔记本实例。任何人都可以验证

标签: pythonamazon-web-servicesamazon-sagemaker

解决方案


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

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


推荐阅读