2024云边一体化人工智能平台模型格式转换标准_第1页
2024云边一体化人工智能平台模型格式转换标准_第2页
2024云边一体化人工智能平台模型格式转换标准_第3页
2024云边一体化人工智能平台模型格式转换标准_第4页
2024云边一体化人工智能平台模型格式转换标准_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云边一体化人工智能平台模型格式转换标云边一体化人工智能平台模型格式转换标准目  次前言 II1目  次前言 II123范围 1规范性引用文件 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(规范性附录)规范性附录标题 12附 录 B(资料性附录)资料性附录标题 13I云边一体化人工智能平台模型格式转换标准1 范围本标准规定了云边一体化人工智能平台兼容各种主流深度学习框架训练后的模型格式以及不同模型之间的转换格式。管理和使用。2 规范性引用文件凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T5271.28-2001人工智能 基本概念与专家系统GB/T37739-2019信息技术 云计算平台即服务部署要求3 术语、定义和缩略语3.1 术语和定义下列术语和定义适用于本文件。模型转换Modeltransformation将某个抽象层次或形式的模型转换为另一个抽象层次或形式的模型。3.2云边一体化人工智能平台模型格式转换标准1 范围本标准规定了云边一体化人工智能平台兼容各种主流深度学习框架训练后的模型格式以及不同模型之间的转换格式。管理和使用。2 规范性引用文件凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T5271.28-2001人工智能 基本概念与专家系统GB/T37739-2019信息技术 云计算平台即服务部署要求3 术语、定义和缩略语3.1 术语和定义下列术语和定义适用于本文件。模型转换Modeltransformation将某个抽象层次或形式的模型转换为另一个抽象层次或形式的模型。3.2 缩略语下列缩略语适用于本文件。APIApplicationProgrammingInterface应用程序编程接口AIArtificialIntelligence人工智能SDKSoftwareDevelopmentKit软件开发工具包MLMachineLearning机器学习1DLDeepLearining深度学习4 云边一体化人工智能平台架构与模型格式转换框架的关系面向人工智能领域的公共服务平台以京东AI开放平台为基础,以云边一体化的场景应用为导向,型格式转换的API,如图1所示:图1云边一体化人工智能平台架构与模型格式转换框架的关系在模型开发过程中,针对不同层级用户及不同使用场景提供4种模型开发的交互方式:面向无算法DLDeepLearining深度学习4 云边一体化人工智能平台架构与模型格式转换框架的关系面向人工智能领域的公共服务平台以京东AI开放平台为基础,以云边一体化的场景应用为导向,型格式转换的API,如图1所示:图1云边一体化人工智能平台架构与模型格式转换框架的关系在模型开发过程中,针对不同层级用户及不同使用场景提供4种模型开发的交互方式:面向无算法基础人员提供自动化及图形化拖拽模式;面向专业算法人员提供JupyterNoteBook和算法任务式模式。(1)基于算法组件的拖拽式模型训练行评测。基于可视化界面灵活调整输入输出和模型超参数。(2)基于JupyterNoteBook的代码编辑式模型训练支持使用JupyterNoteBook编写代码并通过web控制台连接,自由编码进行模型开发。(3)基于场景的自动化模型训练2用场景的自动化训练任务,支持一键启动自动化训练;基于迁移学习、自动化ML/DL、元学习等技术进行模型迭代,选定最优模型。(4)算法任务书式的模型开发与训练对于已开发完的算法脚本任务,通过直接上传脚本或再次编辑进行模型开发与训练。5 云边一体化人工智能平台模型格式转换框架平台兼容主流深度学习框架的各种模型格式,这些格式之间关系密切,提供了原生框架的API进行无缝转换,便于统一管理。云边一体化AI平台模型格式转换框架如图2用场景的自动化训练任务,支持一键启动自动化训练;基于迁移学习、自动化ML/DL、元学习等技术进行模型迭代,选定最优模型。(4)算法任务书式的模型开发与训练对于已开发完的算法脚本任务,通过直接上传脚本或再次编辑进行模型开发与训练。5 云边一体化人工智能平台模型格式转换框架平台兼容主流深度学习框架的各种模型格式,这些格式之间关系密切,提供了原生框架的API进行无缝转换,便于统一管理。云边一体化AI平台模型格式转换框架如图2所示。图2 云边一体化AI平台模型格式转换框架云边一体化AI平台执行算法无缝兼容原生深度学习主流框架,包括TensorFlow、PyTorch、Caffe、Keras、XGBoost、MXNet、Spark。针对模型训练,平台提供了原生框架的模型导出API;针对模型推理,平台集成ONNX,对不同深度学习框架下的模型格式进行转换,方便在异构设备和操作系统上部署推理模型。6 不同深度学习框架下模型导出格式标准平台支持以下深度学习框架的模型导出格式:6.1 TensorFlow框架模型格式ensorow1.x及2.xchecpotcptavedodepb,HD5。3模型导出格式包括参数及网络结构分别导出,或整合为一个独立文件,相应导出格式如下:参数和网络结构分开保存:ckpt,SavedModel;只保存权重:HDF5参数和网络结构保存在一个文件:pb,HDF53Tensorflow1.xAPI:Keras,EstimatorLegacy。.Keras模型导出格式包括参数及网络结构分别导出,或整合为一个独立文件,相应导出格式如下:参数和网络结构分开保存:ckpt,SavedModel;只保存权重:HDF5参数和网络结构保存在一个文件: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)保存内容同时保存模型权重参数和计算图结构接口方法tf.train.Saver(max_to_keep=None,keep_checkpoint_every_n_hours=None)保存内容只保存模型权重参数,不包含计算图结构返回值checkpoint、meta、index和data文件3.pb模型格式二)4.Savemodel模型格式5.h5模型格式6.2PyTorch框架模型格式PyTorchKey-Value形式存储模型所有参数,共有四个Key-Value键值对,分别为model,optimizer,scheduler和iteration。PyTorch的三种模型格式pt3.pb模型格式二)4.Savemodel模型格式5.h5模型格式6.2PyTorch框架模型格式PyTorchKey-Value形式存储模型所有参数,共有四个Key-Value键值对,分别为model,optimizer,scheduler和iteration。PyTorch的三种模型格式pt、pth和pkl实际上是一种模型格式,都通过torch.save()函数进行模型导出。5接口方法model.save(your_file_path)保存内容同时保存模型权重参数和计算图结构返回值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)保存内容同时保存模型权重参数和计算图结构返回值data、index、pb文件接口方法tf.io.write_graph(graph_or_graph_def,logdir,name,as_text=True)保存内容仅保存模型权重参数,不包含计算图结构返回值pb文件返回值pb文件1.pth模型格式(一)2.pth模型格式(二)6.3Caffe框架模型格式Caffe框架模型格式有prototxt和caffemodel两种。前者存储网络图,后者存储模型权重的相关参数和具体信息。6.4MXNet框架模型格式MXNet框架模型保存格式为params和json两种,前者保存模型网络参数,后者保存网络结构。1.params模型格式2.json模型格式6.5XGBoost框架模型格式XGBoost模型保存格式为model、txt和json三种,均保存模型网络参数和计算图结构。6接口方法bst.save_model()或bst.dump_model()保存内容保存模型网络参数和计算图结构接口方法save('name.json')保存内容保存网络结构返回值json1.pth模型格式(一)2.pth模型格式(二)6.3Caffe框架模型格式Caffe框架模型格式有prototxt和caffemodel两种。前者存储网络图,后者存储模型权重的相关参数和具体信息。6.4MXNet框架模型格式MXNet框架模型保存格式为params和json两种,前者保存模型网络参数,后者保存网络结构。1.params模型格式2.json模型格式6.5XGBoost框架模型格式XGBoost模型保存格式为model、txt和json三种,均保存模型网络参数和计算图结构。6接口方法bst.save_model()或bst.dump_model()保存内容保存模型网络参数和计算图结构接口方法save('name.json')保存内容保存网络结构返回值json文件接口方法mx.callback.do_checkpoint(model_prefix)保存内容保存模型网络参数返回值params文件接口方法model.save(options.export_script_module_to)保存内容保存模型权重参数和网络结构返回值caffemodel、prototxt和pbtxt文件接口方法torch.save(model_object.state_dict(),'weights.pth')保存内容仅保存网络模型参数返回值pth文件接口方法torch.save(model_object,'model.pth')保存内容保存整个网络结构信息和模型参数信息返回值pth文件6.6 PaddlePaddle框架模型格式PaddlePaddle模型保存格式为model,保存网络参数和模型结构。7 不同深度学习框架下模型格式转换标准ONNXAPI,支持TensorFlow、PyTorch、Caffe等模型格式的导入和导出。在模型转换方面,平台使用ONNX提供的ONNXMLTools,将不同深度学习框架的模型格式转换为ONNXONNX格式的模型文件转换为相应框架的模型再进行推理。ONNX框架使用统一的protobuf二进制格式来序列化不同深度学习框架的原始模型,平台封装的ONNXMLTools支持以下框架的模型格式转换:TensorflowPyTorch6.6 PaddlePaddle框架模型格式PaddlePaddle模型保存格式为model,保存网络参数和模型结构。7 不同深度学习框架下模型格式转换标准ONNXAPI,支持TensorFlow、PyTorch、Caffe等模型格式的导入和导出。在模型转换方面,平台使用ONNX提供的ONNXMLTools,将不同深度学习框架的模型格式转换为ONNXONNX格式的模型文件转换为相应框架的模型再进行推理。ONNX框架使用统一的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)保存内容保存网络参数和模型结构返回值model文件返回值model、txt和json文件MindSpore7.1 TensorFlowONNXTensorFlow模型转换为ONNX格式应使用tensorflow-onnx命令,先将转换为原始的pb文件,再利用该转换工具转为ONNX格式。1.SaveModel格式转为ONNX格式2.checkpoint格式转为ONNX格式3.graphdef格式转为ONNX格式4.tflite格式转为ONNX格式参数说明: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格式参数说明: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参数说明:model:被导出模型args:模型输入参数f:类文件对象export_paramsTrue,则所有参数都被导出verboseTrue,输出被导出模型的调试描述training:导出训练模式下的模型input_names:按顺序分配名称到图中输入节点output_names:按顺序分配名称到图中输出节点MXNetONNX7.3参数说明:sym:jsonSymbol[--custom-opslist-of-custom-ops][--fold_const][--large_model][--continue_on_error][--verbose][--output_frozen_graph]7.2PyTorchONNX参数说明:model:被导出模型args:模型输入参数f:类文件对象export_paramsTrue,则所有参数都被导出verboseTrue,输出被导出模型的调试描述training:导出训练模式下的模型input_names:按顺序分配名称到图中输入节点output_names:按顺序分配名称到图中输出节点MXNetONNX7.3参数说明:sym:jsonSymbol文件路径params:paramsparams字典路径input_shape:模型输入形状input_type:输入数据类型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进行模型格式转换。参数说明:keras_modelkeras模型onnx模型7.5 Caffe2ONNXonnx-caffe2已集成到Caffe2框架中,可直接转换,提供Python代码和shell脚本两种转换方式。1.Python代码转换参数说明:predict_netpb模型init_net:pb模型初始化value_info:输入模型数据类型的形状onnx模型2.YD/TXXXXX—XXXX使用ONNXMLTools进行模型格式转换。参数说明:keras_modelkeras模型onnx模型7.5 Caffe2ONNXonnx-caffe2已集成到Caffe2框架中,可直接转换,提供Python代码和shell脚本两种转换方式。1.Python代码转换参数说明:predict_netpb模型init_net:pb模型初始化value_info:输入模型数据类型的形状onnx模型2.shell脚本转换参数说明:predict_netpb模型init_net:pb模型初始化value_info:输入模型数据类型的形状onnx模型7.6 Scikit-LearnONNX利用sklearn-onnx进行模型转换。有convert_sklearn()和to_onnx()两种方法。第一种让用户自定义输入的模型名称和类型,第二种从训练数据中自动推断出以上信息。参数说明: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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论