Ошибка конечной точки вызова AWS SageMaker: не удалось преобразовать строку «xxxxx» в плавающую

#python #amazon-web-services #machine-learning #amazon-sagemaker

Вопрос:

У меня настроена конечная точка в 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:  lt;class 'ValueError'gt;  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   

Комментарии:

1. пожалуйста, предоставьте свой полный источник. вы используете изображение оценщика sklearn?

2. @NeilMcGuigan Я добавил полную обратную трассировку ошибок.

3. я думаю, проблема в том, что у вас есть имена столбцов в первой строке вашего входного файла

4. Имена столбцов @NeilMcGuigan удаляются. Я передаю массив numpy, который выглядит следующим образом: 2000, 85, 60, x1isz2, 0.05312 .