神经网络模型动态加解密的技术这个以后再写吧
书接上文:
AI人工智能(调包侠)速成之路十四(中国象棋AI网络机器人:AI技术综合应用实现)
神经网络模型的存储格式
我们训练的神经网络就是一堆模拟神经元的参数集合,给(他/她/它)一个输入信息就会得到一个经过训练后的输出信息。训练好的神经网络模型最终都需要保存和传递给他人使用,那么如何保存网络结构和每个参数的数值就需要设计一套规范的存储格式。
具体使用哪种格式取决于你的项目需求和所使用的深度学习框架。以下是一些常见的模型保存格式:
HDF5 格式(.h5 或 .hdf5):
这是一种常见的模型保存格式,可以存储模型的权重、结构和配置。
SavedModel 格式:
SavedModel 是 TensorFlow 的另一种模型保存格式,它包括了模型的权重、结构和配置,同时也包括了运行时所需的信息。
ONNX 格式:
ONNX(Open Neural Network Exchange)是一个用于表示神经网络模型的开放式标准,可以在不同的深度学习框架之间进行模型转换。
PyTorch 格式(.pt 或 .pth):
在 PyTorch 中,你可以使用 torch.save(model.state_dict(), 'model.pth') 将模型的权重保存为.pt或.pth文件,同时也可以保存整个模型。
TensorFlow Lite 格式:
适用于在移动设备和嵌入式设备上部署模型的格式。可以使用 TensorFlow 提供的转换工具将模型保存为 TensorFlow Lite 格式。
** 神经网络推理框架**
模型推理部署框架应用平台贡献者NCNN移动端腾讯公司开发的移动端平台部署工具OpenVINOCPU,GPU,嵌入式平台都可以使用,尤其是在CPU上首选OPenVINO。DepthAI嵌入式空间AI平台。Intel公司针对自家设备开开发的部署工具TensorRT只能用在NIVDIA的GPU上的推理框架。NIVDIA的Jetson平台。NVIDIA公司针对自家GPU开发的部署工具Mediapipe服务端,移动端,嵌入式平台,TPUGoogle针对自家硬件设备和深度学习框架开发的部署工具ONNXRuntime可以运行在多平台 (Windows,Linux,Mac,Android,iOS) 上的一款推理框架,它接受 ONNX 格式的模型输入,支持 GPU 和 CPU 的推理由微软、亚马逊 、Facebook 和 IBM 等公司共同开发的开放神经网络交换格式
神经网络推理模型
神经网络推理模型是使用推理框架提供的工具将训练好的神经网络模型转换成对应的推理模型。转换是单向的,转换步骤一般包括 压缩、裁剪、精确度量化等。就像曾经的我们经过书山题海的训练,最后轻装上阵带着一直2B铅笔走进考场......。
神经网络推理模型部署
将神经网络推理框架的接口和转换后的神经网络推理模型一起打包发布到客户终端。这里有个难点是推理框架和使用的推理硬件是有深度绑定的,而客户手上的硬件各有不同......。
解决上面的问题有两个不同的解决方法,一个是发布不同硬件版本的部署产品,一个是在客户的设备上进行一次神经网络推理模型的生成。
如果选择第一个方法,需要发布很多硬件版本,很难覆盖到千差万别的客户终端。如果选择第二个方法,又会遇到新问题就是不想把自己辛苦训练的神经网络模型暴露给其他人,只想提供推理模型。那么又出来一个模型动态加解密的技术......。
解决一个问题总是会产生更多的问题而且永无止境,这就是学海无涯的意思吧。
版权归原作者 askmeaskyou 所有, 如有侵权,请联系我们删除。