日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

離線預(yù)測通用說明

更新時(shí)間:

預(yù)測組件可以使用PAI-EasyVision訓(xùn)練出的模型進(jìn)行離線預(yù)測。本文介紹離線預(yù)測通用的輸入數(shù)據(jù)格式及PAI命令參數(shù)。

概述

PAI-EasyVision支持讀取MaxCompute表數(shù)據(jù)并將結(jié)果寫回MaxCompute表內(nèi)。 同時(shí),支持讀取OSS文件列表進(jìn)行預(yù)測,并將結(jié)果寫回OSS文件中。整個(gè)離線處理過程被抽象為一個(gè)流水線處理流程,每個(gè)原子過程在每個(gè)Worker上異步多線程并發(fā)處理。不同WorkerIO時(shí),通過數(shù)據(jù)分片獲取對應(yīng)的輸入數(shù)據(jù),寫出對應(yīng)的輸出分片。例如,從表中讀取圖片進(jìn)行模型預(yù)測,系統(tǒng)根據(jù)Worker數(shù)量對輸入表進(jìn)行數(shù)據(jù)分片,每個(gè)Worker首先讀取屬于自己的分片數(shù)據(jù),然后經(jīng)過Base64解碼和模型預(yù)測,最后將結(jié)果寫入輸出表。 其中Base64解碼和模型預(yù)測均是多線程異步執(zhí)行,可以充分利用CPUGPU算力進(jìn)行流水線并行處理。處理過程如下圖所示。

image

對于視頻數(shù)據(jù),PAI-EasyVision提供了視頻級別的預(yù)測模型,同時(shí)支持用戶調(diào)用圖像相關(guān)的模型進(jìn)行視頻幀圖像預(yù)測,PAI-EasyVision的離線處理框架會自動進(jìn)行視頻解碼、單幀圖像預(yù)測及所有視頻幀結(jié)果的匯總。

考慮到一部分用戶需要加載自己訓(xùn)練的模型進(jìn)行離線預(yù)測,PAI-EasyVision默認(rèn)提供的預(yù)測代碼無法滿足需求。因此,PAI-EasyVision支持用戶自定義預(yù)測代碼,復(fù)用ev_predict已有的IO功能。例如,通過數(shù)據(jù)下載和數(shù)據(jù)解碼完成自己模型的離線預(yù)測。 此外,PAI-EasyVision也支持在預(yù)測前插入用戶自定義的處理過程,先對輸入數(shù)據(jù)進(jìn)行處理,再送入預(yù)測器,詳情請參見自定義離線預(yù)測。

輸入數(shù)據(jù)格式

  • MaxCompute

    輸入表可以是一列或多列,其中一列為圖像的URL或圖像編碼后的二進(jìn)制數(shù)據(jù)經(jīng)過Base64編碼的數(shù)據(jù),TypeSTRING類型。Schema示例如下。

    +------------------------------------------------------------------------------------+
    | Field           | Type       | Label | Comment                                     |
    +------------------------------------------------------------------------------------+
    | id              | string     |       |                                             |
    | url             | string     |       |                                             |
    +------------------------------------------------------------------------------------+
  • OSS文件

    OSS輸入文件的每一列為一個(gè)URLOSS地址,示例如下。

    oss://your/path/to/image.jpg
    http://your.path/to/image.jpg
  • 自定義輸入數(shù)據(jù)

    讀取MaxCompute表的輸入數(shù)據(jù)只有圖片的URL或圖片的Base64編碼,讀取OSS文件的輸入數(shù)據(jù)只有圖片的URL,進(jìn)行圖片下載解碼,這兩種方式都只能獲得圖像的Numpy Array,以{"image": np.ndarray}的形式在整個(gè)預(yù)測過程中供各個(gè)ProcessPredictor使用。 隨著越來越多的用戶使用自定義Predictor和自定義Process,這種單一的輸入格式已經(jīng)無法滿足用戶的需求。因此改進(jìn)了OSS讀取方式,從而支持用戶自定義格式。

    自定義格式支持原有的OSS文件格式,同時(shí)支持JSON字符串格式,文件的每行是一個(gè)JSON字符串。用戶可以傳入多個(gè)KV對,所有的KV對保存到一個(gè)DICT中,傳遞給自定義Predictor和自定義Process,用戶可以方便地根據(jù)自定義的Key獲取對應(yīng)的Value。

    如果ValueOSS路徑或URL,則系統(tǒng)自動使用多線程下載文件內(nèi)容,并將Value轉(zhuǎn)換為一個(gè)Python file-like Object,用戶可以直接調(diào)用read()readlines()等文件方法獲取對應(yīng)內(nèi)容。如果Value指向一個(gè)文件,且擴(kuò)展名為圖片類型,則系統(tǒng)自動進(jìn)行圖像解碼,用戶從input_data這個(gè)DICT中根據(jù)Key獲取對應(yīng)的Value,類型為numpy.ndarray

    輸入數(shù)據(jù)示例如下所示。

    {"image":"http://your/path/to/image.jpg", "prior":"oss://your/path/to/prior.txt", "config": {"key1":1, "key2":"value2"}}
    {"image":"http://your/path/to/image.jpg", "prior":"oss://your/path/to/prior.txt", "config": {"key2":1, "key2":"value2"}}

    上述的輸入數(shù)據(jù)會被轉(zhuǎn)換為input_dataDICT,其中:

    • image字段對應(yīng)的值為一個(gè)圖像解碼后的數(shù)據(jù)。

    • prior字段對應(yīng)的值為文件對象。

    • config字段對應(yīng)一個(gè)DICT,即JSON字符串內(nèi)容。

    input_dataDICT格式如下所示,用戶在自定義processpredictor中均可以通過Key獲取對應(yīng)的數(shù)據(jù)。

    input_dict = {
      "image": np.ndarray,
      "prior" : file_like_object,
      "config": {"key1":1, "key2":"value2"}
    }
    重要

    所有內(nèi)置的PAI-EasyVision Predictor會使用image這個(gè)Key獲取輸入圖像。如果需要使用自定義輸入格式調(diào)用PAI-EasyVision自帶的Predictor,則圖像數(shù)據(jù)的key必須使用image

參數(shù)說明

參數(shù)名稱

是否必選

描述

類型

默認(rèn)值

model_path

模型OSS路徑。例如"oss://your_bucket/your_model_dir"

STRING

model_type

模型類型,取值范圍如下:

  • feature_extractor:特征抽取

  • classifier:圖像分類

  • multilabel_classifier:多標(biāo)簽分類

  • detector:物體檢測

  • text_detector:文字檢測

  • text_recognizer:文字行識別

  • text_detection_recognition:文字檢測識別

  • text_spotter:文字端到端識別

  • segmentor:圖像分割

  • self_define:自定義預(yù)測

當(dāng)model_typeself_define時(shí),會Load user_predictor_cls指定的預(yù)測類。

STRING

buckets

OSS Bucket信息。如果您使用自己的模型預(yù)測,則需要指定存儲模型的OSS Bucket信息,例如"oss://{bucket_name}.{oss_host}/{path}"

STRING

arn

訪問OSS的授權(quán),其獲取方式請參見PAI-TF任務(wù)參數(shù)介紹IO相關(guān)參數(shù)說明部分。

STRING

feature_name

抽取特征名稱。當(dāng)model_typefeature_extractor時(shí),需要指定該參數(shù)。例如resnet_v1_50/logits

STRING

空字符串("")

input_table

輸入表。例如,非分區(qū)表"odps://prj_name/tables/table_name",分區(qū)表"odps://prj_name/tables/table_name/pt=xxx"

STRING

空字符串("")

image_col

圖片數(shù)據(jù)所在列名。

STRING

"image"

image_type

圖片數(shù)據(jù)格式,取值范圍如下:

  • base64:表示圖片以Base64編碼存放在表內(nèi)。

  • url:表示圖片的URLOSS路徑存放在表內(nèi)。

STRING

"base64"

reserved_columns

保留數(shù)據(jù)列名,多個(gè)列名間使用英文逗號(,)分隔。例如"col1,col2,col3"

STRING

空字符串("")

result_column

結(jié)果列名。

STRING

"prediction_result"

output_table

輸出表,同輸入表格式。如果不存在該表,則PAI命令會自動創(chuàng)建輸出表并建立分區(qū)。用戶也可以提前自行建立表和分區(qū)。

STRING

空字符串("")

lifecycle

輸出表生命周期。

INT

10

num_worker

預(yù)測Worker數(shù)目。增加Worker數(shù)目可以加速離線預(yù)測整體速度。

INT

2

cpuRequired

每個(gè)Worker CPU資源,取值100表示一個(gè)CPU。

INT

1600

gpuRequired

每個(gè)Worker GPU資源,取值100表示一張GPU卡,不能超過100GPU卡。如果取值為0,則使用CPU集群。

INT

100

input_oss_file

輸入OSS文件路徑。文件內(nèi)每行的格式支持以下兩種:

  • 一個(gè)待預(yù)測的圖片OSS路徑或URL,例如oss://your_bucket/filelist.txt

  • 一個(gè)JSON字符串,詳情請參見自定義輸入格式部分。

STRING

空字符串("")

output_oss_file

輸出OSS文件路徑,存放預(yù)測結(jié)果。系統(tǒng)會以該文件名為前綴,生成num_worker個(gè)結(jié)果文件,后續(xù)會將這些文件Merge成一個(gè)結(jié)果文件。

STRING

空字符串("")

output_dir

輸出文件目錄,例如"oss://your_bucket/dir"。如果使用自定義的輸出格式,所有的結(jié)果圖片文件都會保存至該文件夾。

STRING

空字符串("")

user_resource

用戶上傳資源路徑,可以為TAR.GZ、ZIPPython文件。支持OSS路徑或HTTP URL。例如oss://xxx/a.tar.gzhttp://example.com/c.zip

STRING

空字符串("")

user_predictor_cls

用戶自定義predictor類模塊路徑。例如用戶在module.py中實(shí)現(xiàn)了Process A,則A的模塊路徑為module.A

STRING

空字符串("")

user_process_config

用戶自定義process配置信息。其中如下字段用以配置process,用戶也可增加其他自定義配置字段:

  • job_name:自定義process名稱。

  • num_threads:自定義process并發(fā)運(yùn)行線程數(shù)。

  • batch_size:處理數(shù)據(jù)的batch_size。

  • user_process_cls:用戶自定義process類模塊路徑。例如,用戶在module.py中實(shí)現(xiàn)了Process A,則A的模塊路徑為module.A

示例:'{["job_name":"myprocess","user_process_cls": module.ClassA"num_threads":2, "batch_size":1]}'

JSON字符串

空字符串("")

queue_size

緩存隊(duì)列長度。

INT

1024

batch_size

預(yù)測Batch Size。

INT

1

preprocess_thread_num

預(yù)處理(圖片解碼、下載)并發(fā)線程數(shù)。

INT

4

predict_thread_num

預(yù)測并發(fā)線程數(shù)。

INT

2

is_input_video

輸入是否為視頻,取值范圍如下:

  • true:輸入為視頻

  • false:輸入為非視頻。

BOOL

false

use_image_predictor

使用的預(yù)測器是否只支持圖像輸入。

BOOL

true

decode_type

視頻解碼方式,取值范圍如下:

  • 1:Intra only

  • 2:Keyframe only

  • 3:Without bidir

  • 4:Decode all

INT

4

sample_fps

抽幀頻率。

FLOAT

5

reshape_size

輸出幀的大小,-1表示使用原始大小。

INT

-1

decode_batch_size

每次Decode步驟中的Batch大小。

INT

10

decode_keep_size

不同BatchOverlap的幀數(shù)量。

INT

0

enableDynamicCluster

打開Dynamic Cluster,允許單個(gè)Worker Failover。如果任務(wù)經(jīng)常異常出錯(cuò),則可以打開該開關(guān)。取值范圍如下:

  • true:打開Dynamic Cluster

  • false:關(guān)閉Dynamic Cluster

BOOL

false

useSparseClusterSchema

enableDynamicCluster設(shè)置為true時(shí),需要將該參數(shù)設(shè)置為true。取值范圍如下:

  • true:打開稀疏集群

  • false:關(guān)閉稀疏集群

BOOL

false