【发布时间】:2018-05-31 04:01:03
【问题描述】:
我想创建一个或多个 Numpy 数组,其中每个子数组的形状为 [128, audio_length, 1],因此我可以将此 np 数组输入 Keras.fit。但是我似乎无法弄清楚如何做到这一点,因为 np.array 只是抛出无法广播错误
def prepare_data(df, config, data_dir, bands=128):
log_specgrams_2048 = []
for i, fname in enumerate(df.index):
file_path = data_dir + fname
data, _ = librosa.core.load(file_path, sr=config.sampling_rate, res_type="kaiser_fast")
melspec = librosa.feature.melspectrogram(data, sr=config.sampling_rate, n_mels=bands)
logspec = librosa.core.power_to_db(melspec) # shape would be [128, your_audio_length]
logspec = logspec[..., np.newaxis] # shape will be [128, your_audio_length, 1]
log_specgrams_2048.append(normalize_data(logspec))
return log_specgrams_2048
【问题讨论】:
-
哪个
np.array调用会引发此错误?我在你的代码中没有看到。你确定Keras.fit可以处理包含不同大小数组的对象 dtype 数组吗? -
嗨 hpaulj,当我尝试将
log_specgrams_2048转换为 np 时,它会引发错误。我认为 Keras 可以处理不同的输入大小,因为我已经构建了一个输入为inp = Input(shape=(None, None, 1))的 FCN