AWS SageMaker 调用终端节点错误:无法将字符串"xxxxx"转换为浮点数



我在AWS SageMaker中配置了一个端点。我正在尝试调用端点并通过一个测试数据点来获得预测。然而,我遇到了一些数据类型转换问题。我的模型是在数值和分类变量上训练的。

import pandas as pd
df = pd.DataFrame({

'Year': 2000,
'Val': 85,
'Score': 60,
'Area': 'x1isz2',
'Rate': 0.05312,
}, index=[0])
point_X = np.expand_dims(df.to_numpy(), axis=0)
np.savetxt("test_point.csv", point_X[0][0], delimiter=",", fmt='%s')
file_name = ("test_point.csv")  

要么这样做:

with open(file_name, "r") as f:
payload = f.read().strip()

或者试试这个:

payload = ','.join([str(item) for item in point_X[0][0]])
print(payload)
response = runtime_client.invoke_endpoint(
EndpointName=endpoint_name, ContentType="text/csv", Body=payload
)

2000, 85, 60, x1isz2, 0.05312

169.254.178.2 - - [23/Nov/2021:00:12:55 +0000] "GET /ping HTTP/1.1" 200 0 "-" "AHC/2.0"
169.254.178.2 - - [23/Nov/2021:00:13:00 +0000] "GET /ping HTTP/1.1" 200 0 "-" "AHC/2.0"
169.254.178.2 - - [23/Nov/2021:00:13:05 +0000] "GET /ping HTTP/1.1" 200 0 "-" "AHC/2.0"
169.254.178.2 - - [23/Nov/2021:00:13:10 +0000] "GET /ping HTTP/1.1" 200 0 "-" "AHC/2.0"
169.254.178.2 - - [23/Nov/2021:00:13:15 +0000] "GET /ping HTTP/1.1" 200 0 "-" "AHC/2.0"
[2021-11-23:00:13:15:INFO] Determined delimiter of CSV input is ','
[2021-11-23:00:13:15:ERROR] Loading csv data failed with Exception, please ensure data is in csv format:
<class 'ValueError'>
could not convert string to float: 'Year'
Traceback (most recent call last):
File "/miniconda3/lib/python3.6/site-packages/sagemaker_xgboost_container/algorithm_mode/serve_utils.py", line 47, in parse_content_data
dtest = encoder.csv_to_dmatrix(decoded_payload, dtype=np.float)
File "/miniconda3/lib/python3.6/site-packages/sagemaker_xgboost_container/encoder.py", line 50, in csv_to_dmatrix
np_payload = np.array(list(map(lambda x: _clean_csv_string(x, delimiter), string_like.split('n')))).astype(dtype)
ValueError: could not convert string to float: 'Year'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/miniconda3/lib/python3.6/site-packages/sagemaker_xgboost_container/algorithm_mode/serve.py", line 155, in invocations
dtest, content_type = serve_utils.parse_content_data(payload, flask.request.content_type)
File "/miniconda3/lib/python3.6/site-packages/sagemaker_xgboost_container/algorithm_mode/serve_utils.py", line 50, in parse_content_data
"please ensure data is in csv format:n 

错误显示在调用期间将头传递给端点,您可以删除头并只传递调用的行值吗

最新更新