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

3.2.3

# 导入必要的库
import onnx
import numpy as np
from PIL import Image
import onnxruntime as ort


# 定义预处理函数,用于将图片转换为模型所需的输入格式
def preprocess(image_path):
    input_shape = (1, 1, 64, 64)    # 模型输入期望的形状,这里是 (N, C, H, W),N=batch size, C=channels, H=height, W=width
    img = Image.open(image_path).convert('L')    # 打开图像文件并将其转换为灰度图  1分
    img = img.resize((64, 64), Image.ANTIALIAS)    # 调整图像大小到模型输入所需的尺寸
    img_data = np.array(img, dtype=np.float32)    # 将PIL图像对象转换为numpy数组,并确保数据类型是float32
    # 调整数组的形状以匹配模型输入的形状
    img_data = np.expand_dims(img_data, axis=0)  # 添加 batch 维度
    img_data = np.expand_dims(img_data, axis=1)  # 添加 channel 维度
    assert img_data.shape == input_shape, f"Expected shape {input_shape}, but got {img_data.shape}"    # 确保最终的形状与模型输入要求的形状一致
    return img_data    # 返回预处理后的图像数据


# 定义情感类别与数字标签的映射表 2分

emotion_table = {'____________':0, '____________':1, 'surprise':2, 'sadness':3, 'anger':4, 'disgust':5, 'fear':6, 'contempt':7}

---

emotion_table = {'neutral':0, 'happiness':1, 'surprise':2, 'sadness':3, 'anger':4, 'disgust':5, 'fear':6, 'contempt':7}
代码解释:


# 加载模型 2分

ort_session = ____________.____________('emotion-ferplus.onnx')    # 使用onnxruntime创建一个会话,用于加载并运行模型

---

ort_session = ort.InferenceSession('emotion-ferplus.onnx')    # 使用onnxruntime创建一个会话,用于加载并运行模型


# 加载本地图片并进行预处理 2分

input_data = ____________('____________')

---

input_data = preprocess('img_test.png')


# 准备输入数据,确保其符合模型输入的要求
ort_inputs = {ort_session.get_inputs()[0].name: input_data}    # ort_session.get_inputs()[0].name 是获取模型的第一个输入的名字


# 运行模型,进行预测 2分

ort_outs = ____________.____________(None, ort_inputs)

---

ort_outs = ort_session.run(None, ort_inputs)

代码解释:动词在后面,


# 解码模型输出,找到预测概率最高的情感类别 2分

predicted_label = ____________.____________(ort_outs[0])

---

predicted_label = np.argmax(ort_outs[0])

代码解释:概率最高argmax


# 根据预测的标签找到对应的情感名称 2分

predicted_emotion = list(____________.keys())[____________]

---

predicted_emotion = list(emotion_table.keys())[predicted_label]

列表

标签


# 输出预测的情感

print(f"Predicted emotion: {predicted_emotion}")
 

相关文章:

  • 从加密到信任|密码重塑车路云一体化安全生态
  • 【VSCode】安装与 ssh 免密登录
  • 企业网站架构部署与优化-Nginx核心功能
  • Linux 内核探秘:从零构建 GPIO 设备驱动程序实战指南
  • 两个重要的alpha表达式
  • 影刀Fun叉鸟-打刀刀
  • vscode打开vue + element项目
  • 鸿蒙版Flutter库torch_light手电筒功能深度适配
  • 《从虚拟 DOM 到 Diff 算法:深度解析前端高效更新的核心原理》-简版
  • 学习 Android(十)Fragment的生命周期
  • C语言中的内存函数
  • 9-码蹄集600题基础python篇
  • 第二次中医知识问答微调
  • Java 代码生成工具:如何快速构建项目骨架?
  • 游戏盾功能与技术解析
  • 数据库表关系详解
  • Python实例题:Python实现简单画板
  • 建筑资料员考试主要考什么
  • 谷歌2025年I/O开发者大会热点总结
  • 欧拉系统安装,配置静态ip
  • html代码快捷键/如何优化关键词搜索
  • 建设一个asp网站/公关团队
  • 手机网站设计案例/手机卡顿优化软件
  • 项目建设背景是什么/seo关键词优化的技巧
  • 网易云音乐网页版/武汉搜索引擎排名优化
  • 传新闻到网站上怎么做/优化网站制作方法大全