我应该在numpy数组上运行keras pad_序列吗
我正在处理音频数据。我正在使用返回我应该在numpy数组上运行keras pad_序列吗,numpy,keras,Numpy,Keras,我正在处理音频数据。我正在使用返回numpy.ndarray的包加载音频 我需要将样本填充到一个固定的长度,这样我的神经网络就可以处理它了。我知道预处理步骤,但它接受列表列表,而不是ndarray 我可以通过执行以下操作使函数运行 keras.preprocessing.sequence.pad_sequences([sample.tolist() for sample in dataset]) 但这会将numpy数组转换为列表并返回。有没有更有效的方法对我的数据集进行零填充 import o
numpy.ndarray
的包加载音频
我需要将样本填充到一个固定的长度,这样我的神经网络就可以处理它了。我知道预处理步骤,但它接受列表列表,而不是ndarray
我可以通过执行以下操作使函数运行
keras.preprocessing.sequence.pad_sequences([sample.tolist() for sample in dataset])
但这会将numpy数组转换为列表并返回。有没有更有效的方法对我的数据集进行零填充
import os
import keras
import soundfile as sf
train_dir = '../input/songs/songs'
paths = [os.path.join(train_dir, x) for x in os.listdir(train_dir)]
dataset = []
for p in paths:
audio, _ = sf.read(p)
dataset.append(audio)
dataset = keras.preprocessing.sequence.pad_sequences([p.tolist() for p in dataset])
dataset.shape
基准测试AFAIK
pad\u序列的目标是生成(num\u samples,num\u timesteps)
形状的2D Numpy数组,其中num\u timesteps
如果提供,则是maxlen参数,否则是最长序列的长度
那么,为什么需要填充一个已经是2D数组(填充)的数组呢?我需要将数组填充到我的列表中(dataset
是numpy数组的列表)。它还没有填充2D。下面是一个可分叉的示例