Если кто-нибудь нашел способ изменить значения по умолчанию input_fn, Предикат_fn и output_fn, чтобы принимать массив или строку numpy, пожалуйста, поделитесь.
Но я нашел способ сделать это по умолчанию.
import numpy as np
import pandas as pd
df = pd.DataFrame(np.array([[100.0,0.08276299999999992,77.24,0.0008276299999999992,43.56,
6.6000000000000005,69.60699488825647,66.0,583.0,66.0,6.503081996847735,44.765133295284,
0.4844340723821271,21.35599999999999],
[100.0,0.02812099999999873,66.24,0.0002855600000003733,43.56,6.6000000000000005,
1.6884635296354735,66.0,78.0,66.0,6.754543287329573,47.06480204081666,
0.42642318733140017,0.4703999999999951],
[100.0,4.374382,961.36,0.043743819999999996,25153.96,158.6,649.8146514292529,120.0,1586.0
,1512.0,-0.25255116297020636,1.2255274408634853,-2.5421402801039323,614.5056]]),
columns=['a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n'])
import io
from io import StringIO
test_file = io.StringIO()
df.to_csv(test_file,header = None, index = None)
Тогда:
import boto3
client = boto3.client('sagemaker-runtime')
response = client.invoke_endpoint(
EndpointName= endpoint_name,
Body= test_file.getvalue(),
ContentType = 'text/csv')
import json
result = json.loads(response['Body'].read().decode())
print(result)
Но, пожалуйста, если есть лучшее решение, оно будет очень полезно.