国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        SageMaker TensorFlow對象檢測模型

        2022-09-06 11:23
        磐創AI
        關注

        這篇文章描述了如何在Amazon SageMaker中使用TensorFlow對象檢測模型API來實現這一點。

        首先,基于AWS示例筆記本,將解釋如何使用SageMaker端點在單個圖像上運行模型。對于較小的圖像,這種方法可行,但對于較大的圖像,我們會遇到問題。

        為了解決這些問題,改用批處理轉換作業。

        起點:使用SageMaker TensorFLow對象檢測API進行模型推斷

        AWS提供了一些關于GitHub如何使用SageMaker的好例子。

        使用此示例使用TensorFlow對象檢測API對對象檢測模型進行預測:

        image.png

        將模型部署為端點時,可以通過調用端點,使用該模型一次推斷一個圖像。此代碼取自示例筆記本,顯示了如何定義TensorFlowModel并將其部署為模型端點:

        import cv2

        import sagemaker

        from sagemaker.utils import name_from_base

        from sagemaker.tensorflow import TensorFlowModel

        role = sagemaker.get_execution_role()

        model_artefact = '<your-model-s3-path>'

        model_endpoint = TensorFlowModel(

           name=name_from_base('tf2-object-detection'),

           model_data=model_artefact,

           role=role,

           framework_version='2.2',



        predictor = model_endpoint.deploy(initial_instance_count=1, instance_type='ml.m5.large')

        然后,將圖像加載為NumPy數組,并將其解析為列表,以便將其傳遞給端點:

        def image_file_to_tensor(path):

           cv_img = cv2.imread(path,1).astype('uint8')

           cv_img = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB)

           return cv_img

        img = image_file_to_tensor('test_images/22673445.jpg')


        input = {

         'instances': [img.tolist()]

        最后,調用端點:

        detections = predictor.predict(input)['predictions'][0]

        問題:端點請求負載大小太大

        這在使用小圖像時很好,因為API調用的請求負載足夠小。然而,當使用較大的圖片時,API返回413錯誤。這意味著有效負載超過了允許的大小,即6 MB。

        當然,我們可以在調用端點之前調整圖像的大小,但我想使用批處理轉換作業。

        解決方案:改用批處理轉換作業

        使用SageMaker批量轉換作業,你可以定義自己的最大負載大小,這樣我們就不會遇到413個錯誤。其次,這些作業可用于一次性處理全套圖像。

        圖像需要存儲在S3存儲桶中。所有圖像都以批處理模式(名稱中的內容)進行處理,預測也存儲在S3上。

        為了使用批處理轉換作業,我們再次定義了TensorFlowModel,但這次我們還定義了入口點和源目錄:

        model_batch = TensorFlowModel(

           name=name_from_base('tf2-object-detection'),

           model_data=model_artifact,

           role=role,

           framework_version='2.2',

           entry_point='inference.py',

           source_dir='.',

        inference.py代碼轉換模型的輸入和輸出數據,如文檔中所述。此代碼需要將請求負載(圖像)更改為NumPy數組,并將其解析為列表對象。

        從這個示例開始,我更改了代碼,使其加載圖像并將其轉換為NumPy數組。inference.py中input_handler函數更改為以下內容:

        import io

        import json

        import numpy as np

        from PIL import Image

        def input_handler(data, context):

           """ Pre-process request input before it is sent to TensorFlow Serving REST API

           Args:

               data (obj): the request data, in format of dict or string

               context (Context): an object containing request and configuration details

           Returns:

              (dict): a JSON-serializable dict that contains request body and headers

          """


           if context.request_content_type == "application/x-image":

               payload = data.read()              
               image = Image.open(io.BytesIO(payload))        
               array = np.asarray(image)
               return json.dumps({'instances': [array.tolist()]})
           raise ValueError('{{"error": "unsupported content type {}"}}'.format(
               context.request_content_type or "unknown"))

        注意,在上面的代碼中排除了output_handler函數。

        此函數需要Python包NumPy和Pillow,它們未安裝在運行批處理推斷作業的機器上。

        我們可以創建自己的鏡像并使用該鏡像(在TensorFlowModel對象初始化時使用image_uri關鍵字)。

        也可以提供requirements.txt并將其存儲在筆記本所在的文件夾中(稱為source_dir=“.”)。該文件在鏡像引導期間用于使用pip安裝所需的包。內容為:

        numpy

        pillow

        首先,想使用OpenCV(就像在endpoint示例中一樣),但該軟件包不太容易安裝。

        我們現在使用模型創建transformer對象,而不是將模型部署為模型端點:

        input_path = "s3://bucket/input"

        output_path = "s3://bucket/output"


        tensorflow_serving_transformer = model_batch.transformer(

           instance_count=1,

           instance_type="ml.m5.large",

           max_concurrent_transforms=1,

           max_payload=5,

           output_path=output_path,

        最后,使用transform:

        tensorflow_serving_transformer.transform(

           input_path,

           content_type="application/x-image",

        圖像由模型處理,結果將作為JSON文件最終在output_path bucket中。命名等于輸入文件名,后跟.out擴展名。你還可以調整和優化實例類型、最大負載等。

        最后

        這很可能不是最具成本效益的方法,因為我們將圖像作為NumPy數組傳遞給轉換器。

        此外,我們還可以在inference.py中調整output_handler函數壓縮并存儲在S3上的JSON,或僅返回相關檢測。

               原文標題 : SageMaker TensorFlow對象檢測模型

        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 沙河市| 精品人伦一区二区三区| 盱眙县| 伊人成色| 成人小说一区| 久艹AV| 精品国产国产2021| 欧美丰满少妇猛烈进入A片蜜桃| 91九色TS另类国产人妖| 国产中文在线| 大田县| 来宾市| 91丨国产丨白浆秘?3D动漫| 久久亚洲视频| 乱伦日屄| 国产精品久久久影院色| 欧亚aV| 在线熟女| 男人天堂a在线| 好吊AV| 久久婷婷影院| 一区二区三区久久| 夜夜国自一区| 69亚洲精品| 免费av网站| 国产熟女91熟女| 久久av高潮av| 老色鬼久久| 五十路AV| 亚洲中文字幕av| av无码免费| 欧美丝袜另类| 久久国产东京热加勒比| 亚洲中文视频| 看片总站| 久久综合国产| 久久精品国产亚洲AV久| 超碰资源总站| 欧韩一区| 中年熟女网| X66AV|