

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Permintaan Inferensi Dengan Layanan yang Diterapkan
<a name="neo-requests"></a>

Jika Anda telah mengikuti instruksi[Menyebarkan Model](neo-deployment-hosting-services.md), Anda harus menyiapkan dan menjalankan titik akhir SageMaker AI. Terlepas dari bagaimana Anda menerapkan model yang dikompilasi NEO, ada tiga cara Anda dapat mengirimkan permintaan inferensi: 

**Topics**
+ [Meminta Inferensi dari Layanan yang Diterapkan (Amazon SageMaker SDK)](neo-requests-sdk.md)
+ [Minta Inferensi dari Layanan yang Diterapkan (Boto3)](neo-requests-boto3.md)
+ [Minta Inferensi dari Layanan yang Diterapkan (CLI AWS )](neo-requests-cli.md)

# Meminta Inferensi dari Layanan yang Diterapkan (Amazon SageMaker SDK)
<a name="neo-requests-sdk"></a>

Gunakan contoh kode berikut untuk meminta kesimpulan dari layanan yang Anda gunakan berdasarkan kerangka kerja yang Anda gunakan untuk melatih model Anda. Contoh kode untuk kerangka kerja yang berbeda serupa. Perbedaan utama adalah bahwa TensorFlow membutuhkan `application/json` sebagai jenis konten. 

 

## PyTorch dan MXNet
<a name="neo-requests-sdk-py-mxnet"></a>

 Jika Anda menggunakan **PyTorch v1.4 atau versi lebih baru** atau **MXNet 1.7.0 atau yang lebih baru** dan Anda memiliki titik akhir Amazon SageMaker AI`InService`, Anda dapat membuat permintaan inferensi menggunakan `predictor` paket AI SageMaker SDK untuk Python. 

**catatan**  
API bervariasi berdasarkan SageMaker AI SDK untuk versi Python:  
Untuk versi 1.x, gunakan [https://sagemaker.readthedocs.io/en/v1.72.0/api/inference/predictors.html#sagemaker.predictor.RealTimePredictor](https://sagemaker.readthedocs.io/en/v1.72.0/api/inference/predictors.html#sagemaker.predictor.RealTimePredictor)dan [https://sagemaker.readthedocs.io/en/v1.72.0/api/inference/predictors.html#sagemaker.predictor.RealTimePredictor.predict](https://sagemaker.readthedocs.io/en/v1.72.0/api/inference/predictors.html#sagemaker.predictor.RealTimePredictor.predict)API.
Untuk versi 2.x, gunakan [https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html#sagemaker.predictor.Predictor](https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html#sagemaker.predictor.Predictor)dan [https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html#sagemaker.predictor.Predictor.predict](https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html#sagemaker.predictor.Predictor.predict)API.

Contoh kode berikut menunjukkan cara menggunakan ini APIs untuk mengirim gambar untuk inferensi: 

------
#### [ SageMaker Python SDK v1.x ]

```
from sagemaker.predictor import RealTimePredictor

endpoint = 'insert name of your endpoint here'

# Read image into memory
payload = None
with open("image.jpg", 'rb') as f:
    payload = f.read()

predictor = RealTimePredictor(endpoint=endpoint, content_type='application/x-image')
inference_response = predictor.predict(data=payload)
print (inference_response)
```

------
#### [ SageMaker Python SDK v2.x ]

```
from sagemaker.predictor import Predictor

endpoint = 'insert name of your endpoint here'

# Read image into memory
payload = None
with open("image.jpg", 'rb') as f:
    payload = f.read()
    
predictor = Predictor(endpoint)
inference_response = predictor.predict(data=payload)
print (inference_response)
```

------

## TensorFlow
<a name="neo-requests-sdk-py-tf"></a>

Contoh kode berikut menunjukkan cara menggunakan SageMaker Python SDK API untuk mengirim gambar untuk inferensi: 

```
from sagemaker.predictor import Predictor
from PIL import Image
import numpy as np
import json

endpoint = 'insert the name of your endpoint here'

# Read image into memory
image = Image.open(input_file)
batch_size = 1
image = np.asarray(image.resize((224, 224)))
image = image / 128 - 1
image = np.concatenate([image[np.newaxis, :, :]] * batch_size)
body = json.dumps({"instances": image.tolist()})
    
predictor = Predictor(endpoint)
inference_response = predictor.predict(data=body)
print(inference_response)
```

# Minta Inferensi dari Layanan yang Diterapkan (Boto3)
<a name="neo-requests-boto3"></a>

 Anda dapat mengirimkan permintaan inferensi menggunakan SageMaker AI SDK for Python (Boto3) klien dan API setelah Anda memiliki titik [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-runtime.html#SageMakerRuntime.Client.invoke_endpoint](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-runtime.html#SageMakerRuntime.Client.invoke_endpoint)akhir AI. SageMaker `InService` Contoh kode berikut menunjukkan cara mengirim gambar untuk inferensi: 

------
#### [ PyTorch and MXNet ]

```
import boto3

import json
 
endpoint = 'insert name of your endpoint here'
 
runtime = boto3.Session().client('sagemaker-runtime')
 
# Read image into memory
with open(image, 'rb') as f:
    payload = f.read()
# Send image via InvokeEndpoint API
response = runtime.invoke_endpoint(EndpointName=endpoint, ContentType='application/x-image', Body=payload)

# Unpack response
result = json.loads(response['Body'].read().decode())
```

------
#### [ TensorFlow ]

Untuk TensorFlow mengirimkan masukan dengan `application/json` untuk jenis konten. 

```
from PIL import Image
import numpy as np
import json
import boto3

client = boto3.client('sagemaker-runtime') 
input_file = 'path/to/image'
image = Image.open(input_file)
batch_size = 1
image = np.asarray(image.resize((224, 224)))
image = image / 128 - 1
image = np.concatenate([image[np.newaxis, :, :]] * batch_size)
body = json.dumps({"instances": image.tolist()})
ioc_predictor_endpoint_name = 'insert name of your endpoint here'
content_type = 'application/json'   
ioc_response = client.invoke_endpoint(
    EndpointName=ioc_predictor_endpoint_name,
    Body=body,
    ContentType=content_type
 )
```

------
#### [ XGBoost ]

 Untuk XGBoost aplikasi, Anda harus mengirimkan teks CSV sebagai gantinya: 

```
import boto3
import json
 
endpoint = 'insert your endpoint name here'
 
runtime = boto3.Session().client('sagemaker-runtime')
 
csv_text = '1,-1.0,1.0,1.5,2.6'
# Send CSV text via InvokeEndpoint API
response = runtime.invoke_endpoint(EndpointName=endpoint, ContentType='text/csv', Body=csv_text)
# Unpack response
result = json.loads(response['Body'].read().decode())
```

------

 Perhatikan bahwa BYOM memungkinkan untuk jenis konten kustom. Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html). 

# Minta Inferensi dari Layanan yang Diterapkan (CLI AWS )
<a name="neo-requests-cli"></a>

Permintaan inferensi dapat dibuat dengan [https://docs.aws.amazon.com/cli/latest/reference/sagemaker-runtime/invoke-endpoint.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker-runtime/invoke-endpoint.html)setelah Anda memiliki titik akhir `InService` Amazon SageMaker AI. Anda dapat membuat permintaan inferensi dengan AWS Command Line Interface (AWS CLI). Contoh berikut menunjukkan cara mengirim gambar untuk inferensi: 

```
aws sagemaker-runtime invoke-endpoint --endpoint-name 'insert name of your endpoint here' --body fileb://image.jpg --content-type=application/x-image output_file.txt
```

Informasi `output_file.txt` dengan tentang permintaan inferensi Anda dibuat jika inferensi berhasil. 

 Untuk TensorFlow kirimkan masukan dengan `application/json` sebagai jenis konten. 

```
aws sagemaker-runtime invoke-endpoint --endpoint-name 'insert name of your endpoint here' --body fileb://input.json --content-type=application/json output_file.txt
```