Datawhale学习组队活动 Task1

本次参加Datawhale学习组队活动,以天池比赛的“食物语音识别”为学习任务,Datawhale提供了两个baseline,一个是基于CNN的模型,另外一个是基于LSTM的模型。由于个人兴趣所致,本文选择基于LSTM模型进行学习。

  1. 运行环境为:win10+python(3.8)+cuda(10.2)+torch(1.8.1)+torchvision(0.9.1)
    以下为查看方法:
    cuda:进入cmd下运行nvcc --version命令
    torch和torchvision:进入Anaconda Prompt下运行conda list torch
    python:进入Anaconda Prompt下运行python --version

  2. 本次数据集的食物的声音共分为20类,具体如下所示:
    wings,soup,salmon,ribs,pizza,pickles,noddles,jelly,ice-ream,gummies,grapes,fries,drinks,chocolate,chips,carrots,candied_fruits,cabbage,burger,aloe

  3. 特征提取:
    librosa是一个用于音乐和音频分析的python包。它为创建音乐信息检索系统提供了必要的构建块。

import librosa

以下为本次学习特征提取中不懂的参数,并附上语句:

melspectrogram = librosa.feature.melspectrogram(y=y, sr=sr, n_fft=2048, hop_length=1024)

y:是否为音频时间序列
sr:抽样率
n_fft:快速傅里叶窗口的长度
hop_length:连续帧的样本数

mfcc = librosa.feature.mfcc(S=librosa.power_to_db(melspectrogram), n_mfcc=20)

n_mfcc:返回MFCCs的数目
power_to_db()功率谱转换

mfcc_delta = librosa.feature.delta(mfcc)
mfcc_delta_delta = librosa.feature.delta(mfcc_delta)
mfcc_comb = np.concatenate([mfcc, mfcc_delta, mfcc_delta_delta], axis=0)

detal:特征的动态信息。相当于在时间轴上的斜率。
aixs:表示跨行计算。

  1. 基于LSTM的baseline文件
    本次用的baseline采用的是隐含为128层,循环层为30层,最终为1个输出。
self.hidden_size = 128
self.bn_dim = 30
self.num_layers = 1
self.lstm = nn.LSTM(input_size=self.d_input, hidden_size=self.hidden_size, num_layers=self.num_layers,bidirectional=False, bias=True, batch_first=True)
  1. 出现问题:
    执行训练模型过程中出现警告,如下所示:注意这个是警告并不是错误。指在预测标签中就没有 1 这个标签。
    UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use zero_division parameter to control this behavior.

可以在.py文件里面添加如下代码:

import warnings
warnings.filterwarnings("ignore")
  1. 总结:本次对baseline进行学习,可能因为0基础开始,有些代码不是很清楚什么意思,但是Datawhale对于baseline的说明很详细。但是,不知道是个人原因还是程序问题。我没有找到如何执行测试集的.py文件,训练完毕后,我不知道该怎么办了?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值