语音识别(2):KWS数据集代码分析
数据集分析
kws的语音数据为该数据集有 30 个短单词的 65000 个长度 1 秒钟的发音。
这是Google的一个语音数据集 下载地址:http://download.tensorflow.org/data/speech_commands_v0.01.tar.gz 下载后得到文件 speech_commands_v0.01.tar.gz
训练集包含51088 个 wav 音频文件 验证集包含6798 个 wav 音频文件 测试集包含6835 个 wav 音频文件
pytorch音频官方文档
代码分析
1.Python strip()方法
str.strip([chars]);
返回移除指定字符串头尾指定的字符生成新的字符串。
print str2.strip();
删除空格
2.pushd 命令,了解一下! 一个比 cd 更高效的目录切换命令 push 命令在输过不同的目录以后,再次更改只需要push +* 就好。
Linux中的pushd和popd (1)popd不带参数,将目录栈的栈顶元素出栈 (2)popd + * 就是将目录栈中第**个目录删除。如果目录栈的栈顶元素没有发生变化,是不会导致当前的目录切换的。
3.with open(““,“r“) as file 为了更加严谨,在打开失败时不执行.close()操作。
with list_fullpath[split].open("r") as fr
4.readlines() 方法返回一个列表,其中包含文件中的每一行作为列表项。
5.Torchaudio.load 读取完音频则为Tensor的型态。 waveform, sr = torchaudio.load(filepath, frame_offset=0 , num_frames=-1, normalize=True, channels_first=True)
torchaudio读取wav音频的使用方法
返回的结果类型:waveform (torch.Tensor): 如果输入文件是int类型的wav,且normalization为False,则waveform的数据就为int类型的,否则是float32;如果channel_first=True,则waveform.shape=[channel, time]。sr (int): 采样率 保存音频的代码:`torchaudio.save(filepath, src, sample_rate, channels_first)
6.F.pad() 是pytorch 内置的 tensor 扩充函数,便于对数据集图像或中间层特征进行维度扩充.F.pad() 函数详解
7.pathlib.Path().iterdir() 返回一个迭代器包含目录中所有的对象,对象包含文件属性信息python文件操作
代码整合:
PyTorch学习笔记(4)–DataLoader的使用
dataloader与dataset存在区别,dataset取数据是 dataset[:2], 而dataloader取数据可以使用迭代器。
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
# 准备的测试数据集 数据放在了CIFAR10文件夹下
test_data = torchvision.datasets.CIFAR10("./CIFAR10", train=False, transform=torchvision.transforms.ToTensor())
test_loader = DataLoader(dataset=test_data, batch_size=4, shuffle=True, num_workers=0, drop_last=False)
# 测试数据集中第一张图片及target
img, target = test_data[0]
print(img.shape)
print(target)
# 在定义test_loader时,设置了batch_size=4,表示一次性从数据集中取出4个数据
for data in test_loader:
imgs, targets = data
print(imgs.shape)
print(targets)
特征定义
输入特征是BCH*W的4维张量,其中B表示batchsize,C表示特征通道数,H和W表示特征的高和宽
kws项目实现
kws项目地址: kws-continual-learning
代码使用GPU运行
Windows 下安装 CUDA 和 Pytorch 跑深度学习
.yml 实现虚拟环境
创建一个环境,然后激活,根据配置文件创建虚拟环境:
conda env create -f environment.yml conda active kws
windows 下 bash 文件的运行
cd bash conda_install.sh
先安装git 代开.sh文件夹处,右键点击git bash here , 在对话框输入命令
windows10下运行.sh文件报错:wget: command not found
下载wget文件
解决OSError: [WinError 1314] 客户端没有所需的特权
用管理员身份打开pycharm项目文件
google colab使用
google colab使用;
neptune 使用
官网:neptune 参考文件:github neptune-aineptune相关文档安装 Neptune如何查找和设置海王星 API 令牌
问题:No module named ‘neptune’
卸载重装
...
# initialize Neptune
neptune.init(<your workspace name>, api_token=<your token>)
neptune.create_experiment(name=<your experiment name>, params=PARAMETERS)
...
nepute
您可以通过创建仪表板将不同的元数据类型(如图表、参数、图像等)组合在一个地方。 创建后,仪表板将可用于项目中的所有运行。
运行代码:
记录问题并解决Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same
在trainer.py文件133行添加语句 self.model.to(self.device)