Создание массива Numpy или массивов переменной длины - PullRequest
0 голосов
/ 31 мая 2018

Я хочу создать массив или массивы 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

1 Ответ

0 голосов
/ 31 мая 2018

Вы должны сгруппировать последовательности по длине и несколько раз вызвать Keras.fit.

Вы можете сделать:

  • Bucketing
  • Zero-padding
  • Партия размером 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...