#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
.