没有合适的资源?快使用搜索试试~ 我知道了~
首页pytorch加载语音类自定义数据集的方法教程
前言 pytorch对一下常用的公开数据集有很方便的API接口,但是当我们需要使用自己的数据集训练神经网络时,就需要自定义数据集,在pytorch中,提供了一些类,方便我们定义自己的数据集合 torch.utils.data.Dataset:所有继承他的子类都应该重写 __len()__ , __getitem()__ 这两个方法 __len()__ :返回数据集中数据的数量 __getitem()__ :返回支持下标索引方式获取的一个数据 torch.utils.data.DataLoader:对数据集进行包装,可以设置batch_size、是否shuf
资源详情
资源评论
资源推荐

pytorch加载语音类自定义数据集的方法教程加载语音类自定义数据集的方法教程
前言前言
pytorch对一下常用的公开数据集有很方便的API接口,但是当我们需要使用自己的数据集训练神经网络时,就需要自定义
数据集,在pytorch中,提供了一些类,方便我们定义自己的数据集合
torch.utils.data.Dataset:所有继承他的子类都应该重写 __len()__ , __getitem()__ 这两个方法
__len()__ :返回数据集中数据的数量
__getitem()__ :返回支持下标索引方式获取的一个数据
torch.utils.data.DataLoader:对数据集进行包装,可以设置batch_size、是否shuffle….
第一步第一步
自定义的 Dataset 都需要继承 torch.utils.data.Dataset 类,并且重写它的两个成员方法:
__len()__:读取数据,返回数据和标签
__getitem()__:返回数据集的长度
from torch.utils.data import Dataset
class AudioDataset(Dataset):
def __init__(self, ...):
"""类的初始化"""
pass
def __getitem__(self, item):
"""每次怎么读数据,返回数据和标签"""
return data, label
def __len__(self):
"""返回整个数据集的长度"""
return total
注意事项:Dataset只负责数据的抽象,一次调用getiitem只返回一个样本
案例:
文件目录结构
p225
***.wav
***.wav
***.wav
…
dataset.py
目的:读取p225文件夹中的音频数据
class AudioDataset(Dataset):
def __init__(self, data_folder, sr=16000, dimension=8192):
self.data_folder = data_folder
self.sr = sr
self.dim = dimension
# 获取音频名列表
self.wav_list = [] for root, dirnames, filenames in os.walk(data_folder):
for filename in fnmatch.filter(filenames, "*.wav"): # 实现列表特殊字符的过滤或筛选,返回符合匹配“.wav”字符列表
self.wav_list.append(os.path.join(root, filename))
def __getitem__(self, item):
# 读取一个音频文件,返回每个音频数据
filename = self.wav_list[item] wb_wav, _ = librosa.load(filename, sr=self.sr)
# 取 帧
if len(wb_wav) >= self.dim:


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0