2024云邊一體化人工智能平臺模型格式轉換標準_第1頁
2024云邊一體化人工智能平臺模型格式轉換標準_第2頁
2024云邊一體化人工智能平臺模型格式轉換標準_第3頁
2024云邊一體化人工智能平臺模型格式轉換標準_第4頁
2024云邊一體化人工智能平臺模型格式轉換標準_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

云邊一體化人工智能平臺模型格式轉換標云邊一體化人工智能平臺模型格式轉換標準目??次前言 II1目??次前言 II123范圍 1規(guī)范性引用文件 1術語、定義和縮略語 1術語和定義 1縮略語 1云邊一體化人工智能平臺架構與模型格式轉換框架的關系 2云邊一體化人工智能平臺模型格式轉換框架 3不同深度學習框架下模型導出格式標準 3Tensorflow框架的模型格式 3PyTorch框架的模型格式 5Caffe框架的模型格式 6MXNet框架的模型格式 6XGBoost框架的模型格式 6PaddlePaddle框架的模型格式 7不同深度學習框架下模型格式轉換標準 7Tensorflow與ONNX的相互轉換轉ONNX 8PyTorch模型轉ONNX 9MXNet模型轉ONNX 9Keras模型轉ONNX 9Caffe2模型轉ONNX 10Scikit-Learn模型轉ONNX 104567附 錄 A(規(guī)范性附錄)規(guī)范性附錄標題 12附 錄 B(資料性附錄)資料性附錄標題 13I云邊一體化人工智能平臺模型格式轉換標準1 范圍本標準規(guī)定了云邊一體化人工智能平臺兼容各種主流深度學習框架訓練后的模型格式以及不同模型之間的轉換格式。管理和使用。2 規(guī)范性引用文件凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。GB/T5271.28-2001人工智能 基本概念與專家系統(tǒng)GB/T37739-2019信息技術 云計算平臺即服務部署要求3 術語、定義和縮略語3.1 術語和定義下列術語和定義適用于本文件。模型轉換Modeltransformation將某個抽象層次或形式的模型轉換為另一個抽象層次或形式的模型。3.2云邊一體化人工智能平臺模型格式轉換標準1 范圍本標準規(guī)定了云邊一體化人工智能平臺兼容各種主流深度學習框架訓練后的模型格式以及不同模型之間的轉換格式。管理和使用。2 規(guī)范性引用文件凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。GB/T5271.28-2001人工智能 基本概念與專家系統(tǒng)GB/T37739-2019信息技術 云計算平臺即服務部署要求3 術語、定義和縮略語3.1 術語和定義下列術語和定義適用于本文件。模型轉換Modeltransformation將某個抽象層次或形式的模型轉換為另一個抽象層次或形式的模型。3.2 縮略語下列縮略語適用于本文件。APIApplicationProgrammingInterface應用程序編程接口AIArtificialIntelligence人工智能SDKSoftwareDevelopmentKit軟件開發(fā)工具包MLMachineLearning機器學習1DLDeepLearining深度學習4 云邊一體化人工智能平臺架構與模型格式轉換框架的關系面向人工智能領域的公共服務平臺以京東AI開放平臺為基礎,以云邊一體化的場景應用為導向,型格式轉換的API,如圖1所示:圖1云邊一體化人工智能平臺架構與模型格式轉換框架的關系在模型開發(fā)過程中,針對不同層級用戶及不同使用場景提供4種模型開發(fā)的交互方式:面向無算法DLDeepLearining深度學習4 云邊一體化人工智能平臺架構與模型格式轉換框架的關系面向人工智能領域的公共服務平臺以京東AI開放平臺為基礎,以云邊一體化的場景應用為導向,型格式轉換的API,如圖1所示:圖1云邊一體化人工智能平臺架構與模型格式轉換框架的關系在模型開發(fā)過程中,針對不同層級用戶及不同使用場景提供4種模型開發(fā)的交互方式:面向無算法基礎人員提供自動化及圖形化拖拽模式;面向專業(yè)算法人員提供JupyterNoteBook和算法任務式模式。(1)基于算法組件的拖拽式模型訓練行評測?;诳梢暬缑骒`活調整輸入輸出和模型超參數(shù)。(2)基于JupyterNoteBook的代碼編輯式模型訓練支持使用JupyterNoteBook編寫代碼并通過web控制臺連接,自由編碼進行模型開發(fā)。(3)基于場景的自動化模型訓練2用場景的自動化訓練任務,支持一鍵啟動自動化訓練;基于遷移學習、自動化ML/DL、元學習等技術進行模型迭代,選定最優(yōu)模型。(4)算法任務書式的模型開發(fā)與訓練對于已開發(fā)完的算法腳本任務,通過直接上傳腳本或再次編輯進行模型開發(fā)與訓練。5 云邊一體化人工智能平臺模型格式轉換框架平臺兼容主流深度學習框架的各種模型格式,這些格式之間關系密切,提供了原生框架的API進行無縫轉換,便于統(tǒng)一管理。云邊一體化AI平臺模型格式轉換框架如圖2用場景的自動化訓練任務,支持一鍵啟動自動化訓練;基于遷移學習、自動化ML/DL、元學習等技術進行模型迭代,選定最優(yōu)模型。(4)算法任務書式的模型開發(fā)與訓練對于已開發(fā)完的算法腳本任務,通過直接上傳腳本或再次編輯進行模型開發(fā)與訓練。5 云邊一體化人工智能平臺模型格式轉換框架平臺兼容主流深度學習框架的各種模型格式,這些格式之間關系密切,提供了原生框架的API進行無縫轉換,便于統(tǒng)一管理。云邊一體化AI平臺模型格式轉換框架如圖2所示。圖2 云邊一體化AI平臺模型格式轉換框架云邊一體化AI平臺執(zhí)行算法無縫兼容原生深度學習主流框架,包括TensorFlow、PyTorch、Caffe、Keras、XGBoost、MXNet、Spark。針對模型訓練,平臺提供了原生框架的模型導出API;針對模型推理,平臺集成ONNX,對不同深度學習框架下的模型格式進行轉換,方便在異構設備和操作系統(tǒng)上部署推理模型。6 不同深度學習框架下模型導出格式標準平臺支持以下深度學習框架的模型導出格式:6.1 TensorFlow框架模型格式ensorow1.x及2.xchecpotcptavedodepb,HD5。3模型導出格式包括參數(shù)及網(wǎng)絡結構分別導出,或整合為一個獨立文件,相應導出格式如下:參數(shù)和網(wǎng)絡結構分開保存:ckpt,SavedModel;只保存權重:HDF5參數(shù)和網(wǎng)絡結構保存在一個文件:pb,HDF53Tensorflow1.xAPI:Keras,EstimatorLegacy。.Keras模型導出格式包括參數(shù)及網(wǎng)絡結構分別導出,或整合為一個獨立文件,相應導出格式如下:參數(shù)和網(wǎng)絡結構分開保存:ckpt,SavedModel;只保存權重:HDF5參數(shù)和網(wǎng)絡結構保存在一個文件:pb,HDF53Tensorflow1.xAPI:Keras,EstimatorLegacy。.Keras保存為HD5simaor保存為avedodeaacy保存為hecpontfeee_aphpbTFLiteConverter導出為.tflite模型格式,以部署到安卓/ios/嵌入式設備進行模型推理。Tensorflow2.xSavedModel,應使用.h5HDF5。Tensorflow框架的模型保存格式有ckpt、.pb和SavedModel和h5文件。圖3 Tensorflow1.x模型格式轉換API1.ckpt模型格式2.pb模型格式一)4接口方法tf.gfile.GFile(oldpath,newpath,overwrite=False)保存內容同時保存模型權重參數(shù)和計算圖結構接口方法tf.train.Saver(max_to_keep=None,keep_checkpoint_every_n_hours=None)保存內容只保存模型權重參數(shù),不包含計算圖結構返回值checkpoint、meta、index和data文件3.pb模型格式二)4.Savemodel模型格式5.h5模型格式6.2PyTorch框架模型格式PyTorchKey-Value形式存儲模型所有參數(shù),共有四個Key-Value鍵值對,分別為model,optimizer,scheduler和iteration。PyTorch的三種模型格式pt3.pb模型格式二)4.Savemodel模型格式5.h5模型格式6.2PyTorch框架模型格式PyTorchKey-Value形式存儲模型所有參數(shù),共有四個Key-Value鍵值對,分別為model,optimizer,scheduler和iteration。PyTorch的三種模型格式pt、pth和pkl實際上是一種模型格式,都通過torch.save()函數(shù)進行模型導出。5接口方法model.save(your_file_path)保存內容同時保存模型權重參數(shù)和計算圖結構返回值h5文件接口方法pat.v1.train.Saver(var_list=None,reshape=False,sharded=False,max_to_keep=5,keep_checkpoint_every_n_hours=10000.0,name=None,restore_sequentially=False,saver_def=None,builder=None,defer_build=False,allow_empty=False,write_version=tf.train.SaverDef.V2,pad_step_number=False,save_relative_paths=False,filename=None)保存內容同時保存模型權重參數(shù)和計算圖結構返回值data、index、pb文件接口方法tf.io.write_graph(graph_or_graph_def,logdir,name,as_text=True)保存內容僅保存模型權重參數(shù),不包含計算圖結構返回值pb文件返回值pb文件1.pth模型格式(一)2.pth模型格式(二)6.3Caffe框架模型格式Caffe框架模型格式有prototxt和caffemodel兩種。前者存儲網(wǎng)絡圖,后者存儲模型權重的相關參數(shù)和具體信息。6.4MXNet框架模型格式MXNet框架模型保存格式為params和json兩種,前者保存模型網(wǎng)絡參數(shù),后者保存網(wǎng)絡結構。1.params模型格式2.json模型格式6.5XGBoost框架模型格式XGBoost模型保存格式為model、txt和json三種,均保存模型網(wǎng)絡參數(shù)和計算圖結構。6接口方法bst.save_model()或bst.dump_model()保存內容保存模型網(wǎng)絡參數(shù)和計算圖結構接口方法save('name.json')保存內容保存網(wǎng)絡結構返回值json1.pth模型格式(一)2.pth模型格式(二)6.3Caffe框架模型格式Caffe框架模型格式有prototxt和caffemodel兩種。前者存儲網(wǎng)絡圖,后者存儲模型權重的相關參數(shù)和具體信息。6.4MXNet框架模型格式MXNet框架模型保存格式為params和json兩種,前者保存模型網(wǎng)絡參數(shù),后者保存網(wǎng)絡結構。1.params模型格式2.json模型格式6.5XGBoost框架模型格式XGBoost模型保存格式為model、txt和json三種,均保存模型網(wǎng)絡參數(shù)和計算圖結構。6接口方法bst.save_model()或bst.dump_model()保存內容保存模型網(wǎng)絡參數(shù)和計算圖結構接口方法save('name.json')保存內容保存網(wǎng)絡結構返回值json文件接口方法mx.callback.do_checkpoint(model_prefix)保存內容保存模型網(wǎng)絡參數(shù)返回值params文件接口方法model.save(options.export_script_module_to)保存內容保存模型權重參數(shù)和網(wǎng)絡結構返回值caffemodel、prototxt和pbtxt文件接口方法torch.save(model_object.state_dict(),'weights.pth')保存內容僅保存網(wǎng)絡模型參數(shù)返回值pth文件接口方法torch.save(model_object,'model.pth')保存內容保存整個網(wǎng)絡結構信息和模型參數(shù)信息返回值pth文件6.6 PaddlePaddle框架模型格式PaddlePaddle模型保存格式為model,保存網(wǎng)絡參數(shù)和模型結構。7 不同深度學習框架下模型格式轉換標準ONNXAPI,支持TensorFlow、PyTorch、Caffe等模型格式的導入和導出。在模型轉換方面,平臺使用ONNX提供的ONNXMLTools,將不同深度學習框架的模型格式轉換為ONNXONNX格式的模型文件轉換為相應框架的模型再進行推理。ONNX框架使用統(tǒng)一的protobuf二進制格式來序列化不同深度學習框架的原始模型,平臺封裝的ONNXMLTools支持以下框架的模型格式轉換:TensorflowPyTorch6.6 PaddlePaddle框架模型格式PaddlePaddle模型保存格式為model,保存網(wǎng)絡參數(shù)和模型結構。7 不同深度學習框架下模型格式轉換標準ONNXAPI,支持TensorFlow、PyTorch、Caffe等模型格式的導入和導出。在模型轉換方面,平臺使用ONNX提供的ONNXMLTools,將不同深度學習框架的模型格式轉換為ONNXONNX格式的模型文件轉換為相應框架的模型再進行推理。ONNX框架使用統(tǒng)一的protobuf二進制格式來序列化不同深度學習框架的原始模型,平臺封裝的ONNXMLTools支持以下框架的模型格式轉換:TensorflowPyTorchKerasXGBoostScikit-learnAppleCoreMLSparkMLMatlabMXNetCaffe2PaddlePaddle7接口方法paddle.fluid.io.save_inference_model(dirname,feeded_var_names,target_vars,executor,main_program=None,model_filename=None,params_filename=None,export_for_deployment=True)保存內容保存網(wǎng)絡參數(shù)和模型結構返回值model文件返回值model、txt和json文件MindSpore7.1 TensorFlowONNXTensorFlow模型轉換為ONNX格式應使用tensorflow-onnx命令,先將轉換為原始的pb文件,再利用該轉換工具轉為ONNX格式。1.SaveModel格式轉為ONNX格式2.checkpoint格式轉為ONNX格式3.graphdef格式轉為ONNX格式4.tflite格式轉為ONNX格式參數(shù)說明:python-mtf2onnx.convert--saved-modelSOURCE_SAVED_MODEL_PATH|MindSpore7.1 TensorFlowONNXTensorFlow模型轉換為ONNX格式應使用tensorflow-onnx命令,先將轉換為原始的pb文件,再利用該轉換工具轉為ONNX格式。1.SaveModel格式轉為ONNX格式2.checkpoint格式轉為ONNX格式3.graphdef格式轉為ONNX格式4.tflite格式轉為ONNX格式參數(shù)說明:python-mtf2onnx.convert--saved-modelSOURCE_SAVED_MODEL_PATH|--checkpointSOURCE_CHECKPOINT_METAFILE_PATH|--tfliteSOURCE_TFLITE_PATH|--input|--graphdefSOURCE_GRAPHDEF_PB--outputTARGET_ONNX_MODEL[--inputsGRAPH_INPUTS][--outputsGRAPH_OUTPUS][--inputs-as-nchwinputs_provided_as_nchw][--opsetOPSET][--dequantize][--tagTAG][--signature_defSIGNATURE_DEF][--concrete_functionCONCRETE_FUNCTION][--targetTARGET]8轉換命令python-mtf2onnx.convert--opset13--tflitetflite--file--outputmodel.onnx轉換命令python-mtf2onnx.convert--graphdeftensorflow-model-graphdef-file--outputmodel.onnx--inputsinput0:0,input1:0--outputsoutput0:0轉換命令python-mtf2onnx.convert--checkpointtensorflow-model-meta-file-path--outputmodel.onnx--inputsinput0:0,input1:0--outputsoutput0:0轉換命令python-mtf2onnx.convert--saved-modeltensorflow-model-path--outputmodel.onnx[--custom-opslist-of-custom-ops][--fold_const][--large_model][--continue_on_error][--verbose][--output_frozen_graph]7.2PyTorchONNX參數(shù)說明:model:被導出模型args:模型輸入?yún)?shù)f:類文件對象export_paramsTrue,則所有參數(shù)都被導出verboseTrue,輸出被導出模型的調試描述training:導出訓練模式下的模型input_names:按順序分配名稱到圖中輸入節(jié)點output_names:按順序分配名稱到圖中輸出節(jié)點MXNetONNX7.3參數(shù)說明:sym:jsonSymbol[--custom-opslist-of-custom-ops][--fold_const][--large_model][--continue_on_error][--verbose][--output_frozen_graph]7.2PyTorchONNX參數(shù)說明:model:被導出模型args:模型輸入?yún)?shù)f:類文件對象export_paramsTrue,則所有參數(shù)都被導出verboseTrue,輸出被導出模型的調試描述training:導出訓練模式下的模型input_names:按順序分配名稱到圖中輸入節(jié)點output_names:按順序分配名稱到圖中輸出節(jié)點MXNetONNX7.3參數(shù)說明:sym:jsonSymbol文件路徑params:paramsparams字典路徑input_shape:模型輸入形狀input_type:輸入數(shù)據(jù)類型onnx_file_pathonnx文件保存路徑verboseTrue,打印模型轉換日志返回值:轉換后的onnx模型路徑7.4KerasONNX9接口方法onnx_mxnet.export_model(sym,params,input_shape,input_type=<type'numpy.float32'>,onnx_file_path=u'model.onnx',verbose=False)接口方法torch.onnx.export(model,args,f,export_params=True,verbose=False,training=False,input_names=None,output_names=None)YD/TXXXXX—XXXX使用ONNXMLTools進行模型格式轉換。參數(shù)說明:keras_modelkeras模型onnx模型7.5 Caffe2ONNXonnx-caffe2已集成到Caffe2框架中,可直接轉換,提供Python代碼和shell腳本兩種轉換方式。1.Python代碼轉換參數(shù)說明:predict_netpb模型init_net:pb模型初始化value_info:輸入模型數(shù)據(jù)類型的形狀onnx模型2.YD/TXXXXX—XXXX使用ONNXMLTools進行模型格式轉換。參數(shù)說明:keras_modelkeras模型onnx模型7.5 Caffe2ONNXonnx-caffe2已集成到Caffe2框架中,可直接轉換,提供Python代碼和shell腳本兩種轉換方式。1.Python代碼轉換參數(shù)說明:predict_netpb模型init_net:pb模型初始化value_info:輸入模型數(shù)據(jù)類型的形狀onnx模型2.shell腳本轉換參數(shù)說明:predict_netpb模型init_net:pb模型初始化value_info:輸入模型數(shù)據(jù)類型的形狀onnx模型7.6 Scikit-LearnONNX利用sklearn-onnx進行模型轉換。有convert_sklearn()和to_onnx()兩種方法。第一種讓用戶自定義輸入的模型名稱和類型,第二種從訓練數(shù)據(jù)中自動推斷出以上信息。參數(shù)說明:modelscikit-learn模型initial_types:python列表,包括變量名和類型10接口方法一skl2onnx.convert_sklearn(model,name=None,initial_types=None,doc_string='',target_opset=None,custom_conversion_functions=None,custom_shape_calculators=None,custom_parsers=None,options=None,intermediate=False,white_op=None,black_op=None,final_types=None,dtype=None)轉換命令convert-caffe2-to-onnxpredict_net.pb--caffe2-init-netinit_net.pb--value-info'{"data":[1,[1,3,224,224]]}'-osqeezenet.onnx接口方法caffe2.python.onnx.frontend.caffe2_net_to_onnx_model(predict_net,init_net,value_info,)接口方法onnxmltools.convert_keras(keras_model)nameONNX模型中的計算圖名稱doc_stringONNX模型上的字符串target_opsetopset的版本號cu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論