1.模型加载

1.1 导入 NeMo

import nemo
import nemo.collection.asr as nemo_asr
import torch# 检查 nemo 版本 '1.4.0'
print(nemo.__version__)# 检查 torch 版本 '1.12.1+cu113'
print(torch.__version__) # 检查 GPU 是否被 torch 调用 True
print(torch.cuda.is_available())

1.2 加载自动语音识别模型

NeMo 的每个集合 ASR、NLP、TTS 中,都提供了许多预训练模型,使用 list_available_models() 可以查看 ASR 所提供的所有预训练模型

nemo_asr.models.EncDecCTCModel.list_available_models()
'''
[PretrainedModelInfo(pretrained_model_name=QuartzNet15x5Base-En,description=QuartzNet15x5 model trained on six datasets: LibriSpeech, Mozilla Common Voice (validated clips from en_1488h_2019-12-10), WSJ, Fisher, Switchboard, and NSC Singapore English. It was trained with Apex/Amp optimization level O1 for 600 epochs. The model achieves a WER of 3.79% on LibriSpeech dev-clean, and a WER of 10.05% on dev-other. Please visit https://ngc.nvidia.com/catalog/models/nvidia:nemospeechmodels for further details.,location=https://api.ngc.nvidia.com/v2/models/nvidia/nemospeechmodels/versions/1.0.0a5/files/QuartzNet15x5Base-En.nemo),...]
'''

本次比赛 NVIDIA 在相关资料中提供了中文预训练模型 stt_zh_quartznet15x5.nemo,使用 restore_form() 进行加载

# 加载中文预训练模型并实例化
quartznet = nemo_asr.models.EncDecCTCModel.restore_from("stt_zh_quartznet15x5.nemo")

1.3 加载 quartznet 配置文件

使用 YAML 读取 quartznet 模型配置文件

try:from ruamel.yaml import YAML
except ModuleNotFoundError:from ruamel_yaml import YAML
config_path ="quartznet_15x5_zh.yaml"yaml = YAML(typ='safe')
with open(config_path) as f:params = yaml.load(f)print(params)

1.4 加载数据清单并传给配置文件

将 1.2 节所制作的数据清单,传给配置文件

# 加载数据清单
train_manifest = "/root/data/train.json"
test_manifest = "/root/data/val.json"# 传递给配置文件
params['model']['train_ds']['manifest_filepath']=train_manifest
params['model']['validation_ds']['manifest_filepath']=test_manifest

2.模型训练

2.1 训练

使用迁移学习的方法训练模型

# 设置训练集
quartznet.setup_training_data(train_data_config=params['model']['train_ds'])
# 设置测试集
quartznet.setup_validation_data(val_data_config=params['model']['validation_ds'])# 开始训练
import pytorch_lightning as pl
trainer = pl.Trainer(gpus=1,max_epochs=200)
trainer.fit(quartznet)

2.2 保存并重载

# 将训练好的模型保存为.nemo格式
quartznet.save_to("7th_asr_model_1.nemo")# 重新加载模型
try_model_1 = nemo_asr.models.EncDecCTCModel.restore_from("7th_asr_model_1.nemo")

3 模型评估

from ASR_metrics import utils as metrics# 加载测试数据
asr_result = try_model_1.transcribe(paths2audio_files=["/root/data/test/1/1.wav"])
print(asr_result)#指定正确答案
s1 = "请检测出果皮"
#识别结果
s2 = " ".join(asr_result)#计算字错率cer
print("字错率:{}".format(metrics.calculate_cer(s1,s2)))
#计算准确率
print("准确率:{}".format(1-metrics.calculate_cer(s1,s2)))

NVIDIA 7th SkyHackathon(四)Nemo ASR 模型训练与评估相关推荐

  1. AI:神经网络IMDB电影评论二分类模型训练和评估

    AI:Keras神经网络IMDB电影评论二分类模型训练和评估,python import keras from keras.layers import Dense from keras import ...

  2. NVIDIA 7th SkyHackathon(七)Tao 目标检测模型可视化推理与导出

    1.可视化推理结果 对于训练好的模型,使用 tao 套件可进行推理,各参数如下: -o:输出文件目录,即检测过的图片保存位置 -e:训练配置文件 -m:要测试的模型 -l:推理结果的标注文件目录 -k ...

  3. NVIDIA 7th SkyHackathon(八)使用 Flask 与 Vue 开发 Web

    1.页面效果 Web 采用 flask+vue 开发,效果图如下 2.后端 import sys import subprocess import os from PIL import Image f ...

  4. NVIDIA 7th SkyHackathon(五)图像数据集的处理

    1.训练环境设置 1.1 文件地址 在使用 Tao 训练模型时,需要设置两套文件地址: USER_EXPERIMENT_DIR:docker 中的实验文档存放地址 LOCAL_PROJECT_DIR: ...

  5. 深入浅出XDL(四):模型训练

    上一篇我们分析了XDL的framework的架构设计,了解了XDL的模型构建和运行机制,以及XDL如何将tensorflow作为自己的backend. 本篇继续分析XDL的架构设计,重点关注XDL的参 ...

  6. 【机器学习】模型评估-手写数字集模型训练与评估

    文章目录 前言 一.数据集的加载 二.分训练集和测试集,洗牌操作,二分类 三.训练模型和预测 四.模型评估 1.交叉验证 2.Confusion Matrix-混淆矩阵 2.1 Precision,r ...

  7. 不平衡数据集分类实战:成人收入数据集分类模型训练和评估

    许多二分类任务并不是每个类别都有相同数量的数据,存在着数据分布不平衡的情况. 一个常用的例子是成人收入数据集,它涉及到社交关系.教育水平等个人数据,以此来预测成人的收入水平,判断其是否拥有5万美元/年 ...

  8. 混淆矩阵评价指标_机器学习:模型训练和评估——分类效果的评价

    图 | 源网络文 | 5号程序员 分类模型建立好后,这个模型到底符不符合要求要怎么评判呢? 事实上是有评价标准的. 要评价模型在测试集上预测结果的好坏,可以使用Sklearn库中的metrics模块方 ...

  9. 一文了解 AI 商品模型训练平台

    AI平台的初衷永远是提高开发效率,加快算法迭代周期.通过产品化AI技术,让运营人员能够更贴近技术,更好地指导赋能业务场景,给客户带来更好的技术体验和产品体验. 本文是2020年的正式第一文,介绍了人工 ...

最新文章

  1. 微信小程序cover-view 与cover-image
  2. RecycleView 动画实现
  3. 1494: 连续子串和续
  4. 机器学习自主解决安全威胁离我们还有多远?
  5. 开源数字媒体资产管理系统:Razuna
  6. Java 中的 23 种 设 计 模 式
  7. LeaRun快速开发平台,.Net Core加持,功能更全面
  8. unity车漆模拟ASE
  9. 操作系统——多处理器和多核架构
  10. linux crond定时任务,Linux之定时任务Crond使用
  11. 用PS制作黑白画效果
  12. (OK) MIMP - 18 ( 5 nodes) - 抓包-缺少 MPTCP-JION - 发现了另一个问题【M1 ping M5】不可以 ping 通
  13. Windows 提高办公效率的应用
  14. 4rx4 服务器内存2rx4_【P00930-B21 P06190-001 64GB 2Rx4 PC4-2933Y-R 服务器内存】价格_厂家 - 中国供应商...
  15. 美国队长的工资 python代码-Python有趣的小案例-美国队长盾牌
  16. 2017年“华信智原杯”安徽省大学生程序设计大赛C题-刷票
  17. 如何制作光盘ISO镜像
  18. 计算机主机核心通常包括,通常所说的主机主要包括
  19. 明日之后 服务器维护,明日之后更新维护公告
  20. 基于Jsp的美食网javaweb JAVA美食网站美食教程分享交流网MySQL数据源

热门文章

  1. C++中的log10函数
  2. 知乎好物推荐怎么做?普通人在家单日收入500的副业
  3. 吴恩达机器学习课后作业——SVM支持向量机
  4. Foxit pdf阅读器不及时释放文件的bug解决
  5. 点亮星星评分效果(js/vue)
  6. 企业需要什么样的ERP运维服务
  7. Understanding and Using Assemblies and Namespaces in .NET
  8. 华为交换机eth口作用_华为交换机ETH-TRUNK的自协商陷阱
  9. shell 判断可执行文件
  10. 我的win7 64 激活过了,但是计算机-属性仍然显示“未激活此WIndows副本,单击此处立即激活...