当前位置: 首页 > news >正文

Mxnet框架使用

目录

1.mxnet推理API

2.MXNET模型转ONNX

3.运行示例

1.mxnet推理API

# 导入 MXNet 深度学习框架
import mxnet as mx  if __name__ == '__main__':# 指定预训练模型的 JSON 文件json_file = 'resnext50_32x4d' # 指定模型的参数文件params_file = 'resnext50_32x4d-0000.params'  # 使用 MXNet 加载模型的架构和参数sym, arg_params, aux_params = mx.model.load_checkpoint(json_file, 0) # 创建一个模型对象mod = mx.mod.Module(symbol=sym, context=mx.cpu(), label_names=None)  # 绑定模型参数和输入数据的形状mod.bind(for_training=False, data_shapes=[('data', (1, 3, 224, 224))]) # 设置模型的参数mod.set_params(arg_params, aux_params)# 将输入数据转换为 MXNet 的 NDArray 格式data = mx.nd.array(img)  # 使用模型进行推理,获取输出并转换为 NumPy 数组output = mod.predict(data).asnumpy()  

2.MXNET模型转ONNX

import numpy as np
import mxnet as mx
from mxnet.contrib import onnx as onnx_mxnetsym = "resnext50_32x4d-symbol.json"
params = "resnext50_32x4d-0000.params"
input_shape = (1 ,3 ,224 ,224)
onnx_file = './resnext50.onnx'converted_model_path = onnx_mxnet.export_model(sym, params, [input_shape], np.float32, onnx_file)
# onnx                          1.14.0
# numpy                         1.23.2

3.运行示例

具体代码和模型见百度网盘:

        https://pan.baidu.com/s/1iQELVg7xNjiIlSZZp47xag

        提取码: 24ei 

# 导入 NumPy 库,并将其别名命名为 np
import numpy as np  
# 导入 OpenCV 库
import cv2  # 导入 MXNet 深度学习框架
import mxnet as mx 
# 导入时间库,用于计时
import time  # 定义一个函数 show_top5,用于显示前5个类别及其概率
def show_top5(outputs):# 使用 softmax 函数对输出进行概率归一化output = softmax(outputs[0])  # 对概率从高到低排序,获取排序后的索引reverse_sort_index = np.argsort(output)[::-1]  # 打印标识,表示接下来是前5个类别print('-----TOP 5-----')  # 循环遍历前5个类别for i in range(5): # 打印类别索引和对应的概率 print(reverse_sort_index[i], ':', output[reverse_sort_index[i]])  # 定义 softmax 函数,用于计算 softmax 概率
def softmax(x):return np.exp(x) / sum(np.exp(x))if __name__ == '__main__':# 从文件中加载图像img = cv2.imread('./space_shuttle_224.jpg') # 对图像进行预处理,将其从 BGR 格式转换为 RGB 格式,并调整数据类型为 float32,# 然后进行维度转置和形状重塑,以匹配模型的输入格式 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB).astype('float32').transpose(2, 0, 1).reshape(1, 3, 224, 224)# 指定预训练模型的 JSON 文件json_file = 'resnext50_32x4d'  # 指定模型的参数文件params_file = 'resnext50_32x4d-0000.params'  # 记录开始时间t1 = time.time()  # 使用 MXNet 加载模型的架构和参数sym, arg_params, aux_params = mx.model.load_checkpoint(json_file, 0)# 创建一个模型对象  mod = mx.mod.Module(symbol=sym, context=mx.cpu(), label_names=None) # 绑定模型参数和输入数据的形状mod.bind(for_training=False, data_shapes=[('data', (1, 3, 224, 224))]) # 设置模型的参数 mod.set_params(arg_params, aux_params)# 将输入数据转换为 MXNet 的 NDArray 格式data = mx.nd.array(img)  # 使用模型进行推理,获取输出并转换为 NumPy 数组output = mod.predict(data).asnumpy()  # 记录结束时间t2 = time.time()# 打印推理所需的时间  print("inf_time:", t2 - t1) # 调用显示前5个类别及其概率的函数 show_top5(output) # 打印 "done" 表示脚本执行完成 print('done') 

http://www.lryc.cn/news/219774.html

相关文章:

  • 每个程序员都应该自己写一个的:socket包装类
  • JMeter:断言之响应断言
  • RLHF的替代算法之DPO原理解析:从Zephyr的DPO到Claude的RAILF
  • U盘显示无媒体怎么办?方法很简单
  • 进销存管理系统如何提高供应链效率?
  • 用AI魔法打败AI魔法
  • Java 中的final:不可变性的魔法之旅
  • Alfred 5 for mac(最好用的苹果mac效率软件)中文最新版
  • 常见的Python解释器,你了解多少?
  • 在 Python 中使用 Selenium 按文本查找元素
  • 【Notepad++】搜索返回窗口(find result)被隐藏或遮挡如何恢复?
  • 应用软件安全编程--05预防 XML 注入
  • JavaEE-博客系统3(功能设计)
  • 椭圆滤波器
  • Mac 下安装golang环境
  • 前端面试大纲
  • CAN(Controller Area Network)是一种用于在汽车和工业领域中进行通信的串行总线系统(附加案例)
  • 代码随想录day53|1143.最长公共子序列、 1035.不相交的线、 53. 最大子序和
  • xilinx fpga ddr mig axi
  • 《golang设计模式》第三部分·行为型模式-04-迭代器模式(Iterator)
  • python加上ffmpeg实现音频分割
  • LLM之Prompt(一):5个Prompt高效方法在文心一言3.5的测试对比
  • TreeBERT:基于树的编程语言预训练模型。
  • 生成小程序的二维码的base64码(中间logo可以自定义)
  • 【音视频 | Ogg】Ogg封装格式详解——包含Ogg封装过程、数据包(packet)、页(page)、段(segment)等
  • ubuntu 22.04 安装ros2 iron
  • PHP语言、B/S手术麻醉临床信息管理系统源码
  • Win11安装网络打印机
  • 逆向学习记录(3)工具介绍jadx、gda和jeb
  • C#,数值计算——偏微分方程,Mglin的计算方法与源程序