gpt4 book ai didi

python - 数据增强: What proportion of training dataset needs to be augmented?

转载 作者:行者123 更新时间:2023-12-01 06:46:14 31 4
gpt4 key购买 nike

我目前正在研究语音分类问题。我每个类(class)有 1000 个音频文件,有 7 个这样的类(class)。我需要增强数据以实现更高的准确性。我正在使用 librosa 库进行数据增强。对于每个音频文件,我都使用以下代码。

fbank_train = []
labels_train = []
for wav in x_train_one[:len(x_train_one)]:
samples, sample_rate = librosa.load(wav, sr=16000)
if (len(samples)) == 16000:
label = wav.split('/')[6]
fbank = logfbank(samples, sample_rate, nfilt=16)
fbank_train.append(fbank)
labels_train.append(label)
y_shifted = librosa.effects.pitch_shift(samples, sample_rate, n_steps=4, bins_per_octave=24)
fbank_y_shifted = logfbank(y_shifted, sample_rate, nfilt=16)
fbank_train.append(fbank_y_shifted)
labels_train.append(label)
change_speed = librosa.effects.time_stretch(samples, rate=0.75)
if(len(change_speed)>=16000):
change_speed = change_speed[:16000]
fbank_change_speed = logfbank(change_speed, sample_rate, nfilt=16)
fbank_train.append(fbank_change_speed)
labels_train.append(label)
change_speedp = librosa.effects.time_stretch(samples, rate=1.25)
if(len(change_speedp)<=16000):
change_speedp = np.pad(change_speedp, (0, max(0, 16000 - len(change_speedp))), "constant")
fbank_change_speedp = logfbank(change_speedp, sample_rate, nfilt=16)
fbank_train.append(fbank_change_speedp)
labels_train.append(label)

也就是说,我正在增强每个音频文件(变调和时移)。我想知道,这是增强训练数据集的正确方法吗?如果没有,需要增强的音频文件比例是多少?

最佳答案

执行增强的最常见方法是对整个数据集进行增强,并为每个样本提供随机机会增强或不增强。

此外,在大多数情况下,增强是在运行时期间完成的。

例如,您的案例的伪代码可能如下所示:

for e in epochs:
reshuffle_training_set
for x, y in training_set:
if np.random.random() > 0.5:
x = randomly_shift_pitch(x)
if np.random.random() > 0.5:
x = randomly_shift_time(x)
model.fit(x, y)

这意味着每张图像有 25% 的机会根本不被增强,25% 的机会仅进行时间平移,25% 的机会仅进行音调平移,25% 的机会同时进行时间平移并且音调发生变化。

在下一个纪元中,同一图像将通过上述策略再次增强。如果您通过多个时期训练模型,则每个图像将通过每种增强组合(概率很高),因此模型将从所有增强组合中学习。

此外,如果每个转变都是随机完成的,即使一个样本两次通过同一个增强器,也不会产生相同的扰动样本。

在运行时增强图像而不是事先执行完整增强的一个好处是,如果您想要相同的结果,则需要创建多个新数据集(即一些时移数据集、音调偏移数据集和两者的组合)并在组合的大型数据集上训练模型。

关于python - 数据增强: What proportion of training dataset needs to be augmented?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59212077/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com