评估调用调用端点操作时提供的有效负载

我正在使用sagemaker上的信用欺诈数据集。我正在使用线性学习器二进制分类算法。我将数据分为训练集和测试集,并获得了测试集的结果。当我尝试在训练集上评估模型性能特征时,出现以下错误

 An error occurred (ModelError) when calling the InvokeEndpoint operation: Received client error 
(400) from model with message "unable to evaluate payload provided".

我在下面提到了代码

train_data = 's3://{}/{}/{}'.format(bucket,prefix,'train/examples') #making train_data

#making test_data
test_key = "{}/test/examples".format(prefix)
s3.Bucket(bucket).download_file(test_key,'test_data')

#preparing train channels for training the data
train_channel = sagemaker.session.s3_input(train_data,content_type='text/csv')

#training the data
linear.fit(inputs=train_channel,logs=True)

#creating the endpoint
linear_predictor = linear.deploy(initial_instance_count=1,instance_type='ml.m4.xlarge')

#getting the results on test_data
l = []
with open('test_data','r') as f:
for j in range(0,56962):
    single_test = f.readline()
    result = linear_predictor.predict(single_test)
    l.append(result)
    if j%10000 ==0 :
        print(j)
print(l[0:10])

#getting the results on train_data
#THE CODE BELOW IS THROWING THE ABOVE MENTIONED ERROR
q =[]
with open('train_data',56962):
    single_test = f.readline()
    result = linear_predictor.predict(single_test)
    q.append(result)
    if j%10000 ==0 :
        print(j)
print(q[0:10])

我得到测试数据的结果。我将其存储在列表l中。为了获得训练集上的结果,我遵循了类似的过程,但是遇到了上述错误。有人可以为此提供解决方案吗?

zhaoyu410186459 回答:评估调用调用端点操作时提供的有效负载

仅当输入数据格式与您创建的ML模型不兼容时,才会出现“无法评估提供的有效负载”。在这种情况下,要获得训练集的结果,我们需要先删除最后一列(标签列),然后再将其传递给端点

本文链接:https://www.f2er.com/3124035.html

大家都在问