人工智能(Artificial Intelligence,简称AI)是指计算机系统在完成类似人类智力所需的任务时所表现出来的能力。它是一种复杂的技术,通过将大量的数据输入到算法中进行学习,不断调整和改进自己的算法,从而不断优化其性能。开发需求I35逻辑7O98系统O7I8
自然语言处理是人工智能技术中的另一个分支,主要应用于机器与人之间的语言交互。在工业领域,自然语言处理可以用于实现自然语言的输入、理解和生成。例如,在工业设备维护领域,可以使用自然语言处理技术来实现设备的语音控制和故障诊断。
documentation
torch.onnx.export在torch.onnx.init.py文件中的定义如下:
关于区块链项目技术开发唯:MrsFu123,代币发行、dapp智能合约开发、链游开发、多链钱包开发
交易所开发、量化合约开发、互助游戏开发、Nft数字藏品开发、众筹互助开发、元宇宙开发、swap开发、
链上合约开发、ido开发、商城开发等,开发过各种各样的系统模式,更有多种模式、制度、案例、后台等,成熟技术团队,欢迎实体参考。
def export(model,args,f,export_params=True,verbose=False,training=TrainingMode.EVAL,
input_names=None,output_names=None,aten=False,export_raw_ir=False,
operator_export_type=None,opset_version=None,_retain_param_name=True,
do_constant_folding=True,example_outputs=None,strip_doc_string=True,
dynamic_axes=None,keep_initializers_as_inputs=None,custom_opsets=None,
enable_onnx_checker=True,use_external_data_format=False):
export_params
模型中是否存储模型权重。一般中间表示包含两大类信息:模型结构和模型权重,这两类信息可以在同一个文件里存储,也可以分文件存储。ONNX是用同一个文件表示记录模型的结构和权重的。
我们部署时一般都默认这个参数为True。如果onnx文件是用来在不同框架间传递模型(比如PyTorch到Tensorflow)而不是用于部署,则可以令这个参数为False。
input_names,output_names
设置输入和输出张量的名称。如果不设置的话,会自动分配一些简单的名字(如数字)。
ONNX模型的每个输入和输出张量都有一个名字。很多推理引擎在运行ONNX文件时,都需要以“名称-张量值”的数据对来输入数据,并根据输出张量的名称来获取输出数据。在进行跟张量有关的设置(比如添加动态维度)时,也需要知道张量的名字。
在实际的部署流水线中,我们都需要设置输入和输出张量的名称,并保证ONNX和推理引擎中使用同一套名称。
opset_version
转换时参考哪个ONNX算子集版本,默认为9。后文会详细介绍PyTorch与ONNX的算子对应关系。
dynamic_axes
指定输入输出张量的哪些维度是动态的。
为了追求效率,ONNX默认所有参与运算的张量都是静态的(张量的形状不发生改变)。但在实际应用中,我们又希望模型的输入张量是动态的,尤其是本来就没有形状限制的全卷积模型。因此,我们需要显式地指明输入输出张量的哪几个维度的大小是可变的。