本次学习,基于CNN的分类模型,参考图片分类的形式,将不同声音的频谱做分类,利用天池平台经行运行。
代码
代码来源:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.3.750a204aZZZHfu&postId=198902
下载数据
使用wget函数下载数据
#训练集
wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531887/train_sample.zip
#测试集
wget http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531887/test_a.zip
使用unzip函数解压缩,通过\rm将压缩包删除
unzip -qq train_sample.zip
\rm train_sample.zip
unzip -qq test_a.zip
\rm test_a.zip
导入库
环境要求:
TensorFlow(2.0 +)、keras、sklearn、librosa(音频处理库)
# 基本库
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.model_selection import GridSearchCV
from sklearn.preprocessing import MinMaxScaler
1、train_test_split返回切分的数据集train/test。
2、sklearn中的classification_report函数用于显示主要分类指标的文本报告.在报告中显示每个类的精确度,召回率,F1值等信息。
3、GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数。
4、MinMaxScaler的功能是将每个元素(特征,feature)转换成给定范围的值。
# 加载深度学习框架(搭建分类模型所需要的库)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, Flatten, Dense, MaxPool2D, Dropout
from tensorflow.keras.utils