我应该在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。下面是一个可分叉的示例